You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by jo...@apache.org on 2015/04/20 05:12:53 UTC
[16/50] [abbrv] incubator-nifi git commit: NIFI-244: Initial import
of GetTwitter processor
NIFI-244: Initial import of GetTwitter processor
Project: http://git-wip-us.apache.org/repos/asf/incubator-nifi/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-nifi/commit/e9cb3b30
Tree: http://git-wip-us.apache.org/repos/asf/incubator-nifi/tree/e9cb3b30
Diff: http://git-wip-us.apache.org/repos/asf/incubator-nifi/diff/e9cb3b30
Branch: refs/heads/NIFI-271
Commit: e9cb3b300c6b5e223744925cee1d0c59dd97d29a
Parents: 178c5cd
Author: Mark Payne <ma...@hotmail.com>
Authored: Thu Apr 9 17:56:52 2015 -0400
Committer: Mark Payne <ma...@hotmail.com>
Committed: Thu Apr 9 17:56:52 2015 -0400
----------------------------------------------------------------------
nifi/nifi-assembly/NOTICE | 49 +
nifi/nifi-assembly/pom.xml | 925 ++++++++++---------
nifi/nifi-commons/pom.xml | 1 +
.../nifi-social-media-nar/pom.xml | 36 +
.../nifi-twitter-processors/.gitignore | 1 +
.../nifi-twitter-processors/pom.xml | 60 ++
.../nifi/processors/twitter/GetTwitter.java | 360 ++++++++
.../org.apache.nifi.processor.Processor | 16 +
.../nifi-social-media-bundle/pom.xml | 33 +
nifi/nifi-nar-bundles/pom.xml | 4 +
nifi/pom.xml | 24 +
11 files changed, 1060 insertions(+), 449 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/e9cb3b30/nifi/nifi-assembly/NOTICE
----------------------------------------------------------------------
diff --git a/nifi/nifi-assembly/NOTICE b/nifi/nifi-assembly/NOTICE
index 8d7db8d..d95e2ff 100644
--- a/nifi/nifi-assembly/NOTICE
+++ b/nifi/nifi-assembly/NOTICE
@@ -501,6 +501,38 @@ The following binary components are provided under the Apache Software License v
Apache License Version 2.0 http://www.apache.org/licenses/.
(c) Daniel Lemire, http://lemire.me/en/
+ (ASLv2) Twitter4J
+ The following NOTICE information applies:
+ Copyright 2007 Yusuke Yamamoto
+
+ Twitter4J includes software from JSON.org to parse JSON response from the Twitter API. You can see the license term at http://www.JSON.org/license.html
+
+ (ASLv2) JOAuth
+ The following NOTICE information applies:
+ JOAuth
+ Copyright 2010-2013 Twitter, Inc
+
+ Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0
+
+ (ASLv2) Hosebird Client
+ The following NOTICE information applies:
+ Hosebird Client (hbc)
+ Copyright 2013 Twitter, Inc.
+
+ Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0
+
+ (ASLv2) GeoIP2 Java API
+ The following NOTICE information applies:
+ GeoIP2 Java API
+ This software is Copyright (c) 2013 by MaxMind, Inc.
+
+ This is free software, licensed under the Apache License, Version 2.0.
+
+ (ASLv2) Google HTTP Client Library for Java
+ The following NOTICE information applies:
+ Google HTTP Client Library for Java
+
+ This is free software, licensed under the Apache License, Version 2.0.
************************
Common Development and Distribution License 1.1
@@ -541,6 +573,14 @@ The following binary components are provided under the Common Development and Di
(CDDL 1.0) SR 250 Common Annotations For The JavaTM Platform (javax.annotation:jsr250-api:jar:1.0 - http://jcp.org/aboutJava/communityprocess/final/jsr250/index.html)
************************
+Creative Commons Attribution-ShareAlike 3.0
+************************
+
+The following binary components are provided under the Creative Commons Attribution-ShareAlike 3.0. See project link for details.
+
+ (CCAS 3.0) MaxMind DB (https://github.com/maxmind/MaxMind-DB)
+
+************************
Eclipse Public License 1.0
************************
@@ -560,6 +600,15 @@ The following binary components are provided under the Mozilla Public License v2
(MPL 2.0) Saxon HE (net.sf.saxon:Saxon-HE:jar:9.6.0-4 - http://www.saxonica.com/)
*****************
+Mozilla Public License v1.1
+*****************
+
+The following binary components are provided under the Mozilla Public License v1.1. See project link for details.
+
+ (MPL 1.1) HAPI Base (ca.uhn.hapi:hapi-base:2.2 - http://http://hl7api.sourceforge.net/)
+ (MPL 1.1) HAPI Structures (ca.uhn.hapi:hapi-structures-v*:2.2 - http://http://hl7api.sourceforge.net/)
+
+*****************
Public Domain
*****************
http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/e9cb3b30/nifi/nifi-assembly/pom.xml
----------------------------------------------------------------------
diff --git a/nifi/nifi-assembly/pom.xml b/nifi/nifi-assembly/pom.xml
index a26f214..13ffba8 100644
--- a/nifi/nifi-assembly/pom.xml
+++ b/nifi/nifi-assembly/pom.xml
@@ -1,457 +1,484 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!--
- 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.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi</artifactId>
- <version>0.1.0-incubating-SNAPSHOT</version>
- </parent>
- <artifactId>nifi-assembly</artifactId>
- <packaging>pom</packaging>
- <description>This is the assembly Apache NiFi (incubating)</description>
- <build>
- <plugins>
- <plugin>
- <artifactId>maven-assembly-plugin</artifactId>
- <configuration>
- <finalName>nifi-${project.version}</finalName>
- <attach>false</attach>
- </configuration>
- <executions>
- <execution>
- <id>make shared resource</id>
- <goals>
- <goal>single</goal>
- </goals>
- <phase>package</phase>
- <configuration>
- <descriptors>
- <descriptor>src/main/assembly/dependencies.xml</descriptor>
- </descriptors>
- <tarLongFileMode>posix</tarLongFileMode>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- <dependencies>
- <dependency>
- <groupId>ch.qos.logback</groupId>
- <artifactId>logback-classic</artifactId>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>jcl-over-slf4j</artifactId>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>jul-to-slf4j</artifactId>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>log4j-over-slf4j</artifactId>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-api</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-runtime</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-bootstrap</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-resources</artifactId>
- <classifier>resources</classifier>
- <scope>runtime</scope>
- <type>zip</type>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-docs</artifactId>
- <classifier>resources</classifier>
- <scope>runtime</scope>
- <type>zip</type>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-framework-nar</artifactId>
- <type>nar</type>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-provenance-repository-nar</artifactId>
- <type>nar</type>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-standard-services-api-nar</artifactId>
- <type>nar</type>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-ssl-context-service-nar</artifactId>
- <type>nar</type>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-distributed-cache-services-nar</artifactId>
- <type>nar</type>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-standard-nar</artifactId>
- <type>nar</type>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-jetty-bundle</artifactId>
- <type>nar</type>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-update-attribute-nar</artifactId>
- <type>nar</type>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-hadoop-libraries-nar</artifactId>
- <type>nar</type>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-hadoop-nar</artifactId>
- <type>nar</type>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-kafka-nar</artifactId>
- <type>nar</type>
- </dependency>
+<!-- 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. -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi</artifactId>
+ <version>0.1.0-incubating-SNAPSHOT</version>
+ </parent>
+ <artifactId>nifi-assembly</artifactId>
+ <packaging>pom</packaging>
+ <description>This is the assembly Apache NiFi (incubating)</description>
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <configuration>
+ <finalName>nifi-${project.version}</finalName>
+ <attach>false</attach>
+ </configuration>
+ <executions>
+ <execution>
+ <id>make shared resource</id>
+ <goals>
+ <goal>single</goal>
+ </goals>
+ <phase>package</phase>
+ <configuration>
+ <descriptors>
+ <descriptor>src/main/assembly/dependencies.xml</descriptor>
+ </descriptors>
+ <tarLongFileMode>posix</tarLongFileMode>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ <dependencies>
<dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-http-context-map-nar</artifactId>
- <type>nar</type>
- </dependency>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ <scope>compile</scope>
+ </dependency>
<dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-kite-nar</artifactId>
- <type>nar</type>
- </dependency>
- </dependencies>
-
- <properties>
- <!--Wrapper Properties-->
- <nifi.wrapper.jvm.heap.initial.mb>256</nifi.wrapper.jvm.heap.initial.mb>
- <nifi.wrapper.jvm.heap.max.mb>512</nifi.wrapper.jvm.heap.max.mb>
- <nifi.initial.permgen.size.mb>128</nifi.initial.permgen.size.mb>
- <nifi.max.permgen.size.mb>128</nifi.max.permgen.size.mb>
- <nifi.wrapper.logfile.maxsize>10m</nifi.wrapper.logfile.maxsize>
- <nifi.wrapper.logfile.maxfiles>10</nifi.wrapper.logfile.maxfiles>
-
- <!-- nifi.properties: core properties -->
- <nifi.version>${project.version}</nifi.version>
- <nifi.flowcontroller.autoResumeState>true</nifi.flowcontroller.autoResumeState>
- <nifi.flowcontroller.graceful.shutdown.period>10 sec</nifi.flowcontroller.graceful.shutdown.period>
- <nifi.flowservice.writedelay.interval>500 ms</nifi.flowservice.writedelay.interval>
- <nifi.administrative.yield.duration>30 sec</nifi.administrative.yield.duration>
- <nifi.bored.yield.duration>10 millis</nifi.bored.yield.duration>
+ <groupId>org.slf4j</groupId>
+ <artifactId>jcl-over-slf4j</artifactId>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>jul-to-slf4j</artifactId>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>log4j-over-slf4j</artifactId>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-runtime</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-bootstrap</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-resources</artifactId>
+ <classifier>resources</classifier>
+ <scope>runtime</scope>
+ <type>zip</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-docs</artifactId>
+ <classifier>resources</classifier>
+ <scope>runtime</scope>
+ <type>zip</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-framework-nar</artifactId>
+ <type>nar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-provenance-repository-nar</artifactId>
+ <type>nar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-standard-services-api-nar</artifactId>
+ <type>nar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-ssl-context-service-nar</artifactId>
+ <type>nar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-distributed-cache-services-nar</artifactId>
+ <type>nar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-standard-nar</artifactId>
+ <type>nar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-jetty-bundle</artifactId>
+ <type>nar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-update-attribute-nar</artifactId>
+ <type>nar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-hadoop-libraries-nar</artifactId>
+ <type>nar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-hadoop-nar</artifactId>
+ <type>nar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-kafka-nar</artifactId>
+ <type>nar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-http-context-map-nar</artifactId>
+ <type>nar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-kite-nar</artifactId>
+ <type>nar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-social-media-nar</artifactId>
+ <version>0.1.0-incubating-SNAPSHOT</version>
+ <type>nar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-hl7-nar</artifactId>
+ <version>0.1.0-incubating-SNAPSHOT</version>
+ <type>nar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-language-translation-nar</artifactId>
+ <version>0.1.0-incubating-SNAPSHOT</version>
+ <type>nar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-geo-nar</artifactId>
+ <version>0.1.0-incubating-SNAPSHOT</version>
+ <type>nar</type>
+ </dependency>
+ </dependencies>
+
+ <properties>
+ <!--Wrapper Properties -->
+ <nifi.wrapper.jvm.heap.initial.mb>256</nifi.wrapper.jvm.heap.initial.mb>
+ <nifi.wrapper.jvm.heap.max.mb>512</nifi.wrapper.jvm.heap.max.mb>
+ <nifi.initial.permgen.size.mb>128</nifi.initial.permgen.size.mb>
+ <nifi.max.permgen.size.mb>128</nifi.max.permgen.size.mb>
+ <nifi.wrapper.logfile.maxsize>10m</nifi.wrapper.logfile.maxsize>
+ <nifi.wrapper.logfile.maxfiles>10</nifi.wrapper.logfile.maxfiles>
+
+ <!-- nifi.properties: core properties -->
+ <nifi.version>${project.version}</nifi.version>
+ <nifi.flowcontroller.autoResumeState>true</nifi.flowcontroller.autoResumeState>
+ <nifi.flowcontroller.graceful.shutdown.period>10 sec</nifi.flowcontroller.graceful.shutdown.period>
+ <nifi.flowservice.writedelay.interval>500 ms</nifi.flowservice.writedelay.interval>
+ <nifi.administrative.yield.duration>30 sec</nifi.administrative.yield.duration>
+ <nifi.bored.yield.duration>10 millis</nifi.bored.yield.duration>
+
+ <nifi.flow.configuration.file>./conf/flow.xml.gz</nifi.flow.configuration.file>
+ <nifi.flow.configuration.archive.dir>./conf/archive/</nifi.flow.configuration.archive.dir>
+ <nifi.authority.provider.configuration.file>./conf/authority-providers.xml</nifi.authority.provider.configuration.file>
+ <nifi.templates.directory>./conf/templates</nifi.templates.directory>
+ <nifi.database.directory>./database_repository</nifi.database.directory>
+
+ <nifi.flowfile.repository.implementation>org.apache.nifi.controller.repository.WriteAheadFlowFileRepository</nifi.flowfile.repository.implementation>
+ <nifi.flowfile.repository.directory>./flowfile_repository</nifi.flowfile.repository.directory>
+ <nifi.flowfile.repository.partitions>256</nifi.flowfile.repository.partitions>
+ <nifi.flowfile.repository.checkpoint.interval>2 mins</nifi.flowfile.repository.checkpoint.interval>
+ <nifi.flowfile.repository.always.sync>false</nifi.flowfile.repository.always.sync>
+ <nifi.swap.manager.implementation>org.apache.nifi.controller.FileSystemSwapManager</nifi.swap.manager.implementation>
+ <nifi.queue.swap.threshold>20000</nifi.queue.swap.threshold>
+ <nifi.swap.in.period>5 sec</nifi.swap.in.period>
+ <nifi.swap.in.threads>1</nifi.swap.in.threads>
+ <nifi.swap.out.period>5 sec</nifi.swap.out.period>
+ <nifi.swap.out.threads>4</nifi.swap.out.threads>
+
+ <nifi.content.repository.implementation>org.apache.nifi.controller.repository.FileSystemRepository</nifi.content.repository.implementation>
+ <nifi.content.claim.max.appendable.size>10 MB</nifi.content.claim.max.appendable.size>
+ <nifi.content.claim.max.flow.files>100</nifi.content.claim.max.flow.files>
+ <nifi.content.repository.directory.default>./content_repository</nifi.content.repository.directory.default>
+ <nifi.content.repository.archive.max.retention.period />
+ <nifi.content.repository.archive.max.usage.percentage />
+ <nifi.content.repository.archive.enabled>false</nifi.content.repository.archive.enabled>
+ <nifi.content.repository.always.sync>false</nifi.content.repository.always.sync>
+ <nifi.content.viewer.url />
+
+ <nifi.restore.directory />
+ <nifi.ui.banner.text />
+ <nifi.ui.autorefresh.interval>30 sec</nifi.ui.autorefresh.interval>
+ <nifi.nar.library.directory>./lib</nifi.nar.library.directory>
+ <nifi.nar.working.directory>./work/nar/</nifi.nar.working.directory>
+ <nifi.documentation.working.directory>./work/docs/components</nifi.documentation.working.directory>
+
+ <nifi.sensitive.props.algorithm>PBEWITHMD5AND256BITAES-CBC-OPENSSL</nifi.sensitive.props.algorithm>
+ <nifi.sensitive.props.provider>BC</nifi.sensitive.props.provider>
+ <nifi.h2.url.append>;LOCK_TIMEOUT=25000;WRITE_DELAY=0;AUTO_SERVER=FALSE</nifi.h2.url.append>
+
+ <nifi.remote.input.socket.port>9990</nifi.remote.input.socket.port>
+
+ <!-- persistent provenance repository properties -->
+ <nifi.provenance.repository.implementation>org.apache.nifi.provenance.PersistentProvenanceRepository</nifi.provenance.repository.implementation>
+ <nifi.provenance.repository.directory.default>./provenance_repository</nifi.provenance.repository.directory.default>
+ <nifi.provenance.repository.max.storage.time>24 hours</nifi.provenance.repository.max.storage.time>
+ <nifi.provenance.repository.max.storage.size>1 GB</nifi.provenance.repository.max.storage.size>
+ <nifi.provenance.repository.rollover.time>5 mins</nifi.provenance.repository.rollover.time>
+ <nifi.provenance.repository.rollover.size>100 MB</nifi.provenance.repository.rollover.size>
+ <nifi.provenance.repository.query.threads>2</nifi.provenance.repository.query.threads>
+ <nifi.provenance.repository.compress.on.rollover>true</nifi.provenance.repository.compress.on.rollover>
+ <nifi.provenance.repository.indexed.fields>EventType, FlowFileUUID,
+ Filename, ProcessorID</nifi.provenance.repository.indexed.fields>
+ <nifi.provenance.repository.indexed.attributes />
+ <nifi.provenance.repository.index.shard.size>500 MB</nifi.provenance.repository.index.shard.size>
+ <nifi.provenance.repository.always.sync>false</nifi.provenance.repository.always.sync>
+ <nifi.provenance.repository.journal.count>16</nifi.provenance.repository.journal.count>
+
+ <!-- volatile provenance repository properties -->
+ <nifi.provenance.repository.buffer.size>100000</nifi.provenance.repository.buffer.size>
+
+ <!-- Component status repository properties -->
+ <nifi.components.status.repository.implementation>org.apache.nifi.controller.status.history.VolatileComponentStatusRepository</nifi.components.status.repository.implementation>
+ <nifi.components.status.repository.buffer.size>288</nifi.components.status.repository.buffer.size>
+ <nifi.components.status.snapshot.frequency>5 mins</nifi.components.status.snapshot.frequency>
+
+ <!-- nifi.properties: web properties -->
+ <nifi.web.war.directory>./lib</nifi.web.war.directory>
+ <nifi.web.http.host />
+ <nifi.web.http.port>8080</nifi.web.http.port>
+ <nifi.web.https.host />
+ <nifi.web.https.port />
+ <nifi.jetty.work.dir>./work/jetty</nifi.jetty.work.dir>
+ <nifi.web.jetty.threads>200</nifi.web.jetty.threads>
- <nifi.flow.configuration.file>./conf/flow.xml.gz</nifi.flow.configuration.file>
- <nifi.flow.configuration.archive.dir>./conf/archive/</nifi.flow.configuration.archive.dir>
- <nifi.authority.provider.configuration.file>./conf/authority-providers.xml</nifi.authority.provider.configuration.file>
- <nifi.templates.directory>./conf/templates</nifi.templates.directory>
- <nifi.database.directory>./database_repository</nifi.database.directory>
+ <!-- nifi.properties: security properties -->
+ <nifi.security.keystore />
+ <nifi.security.keystoreType />
+ <nifi.security.keystorePasswd />
+ <nifi.security.keyPasswd />
+ <nifi.security.truststore />
+ <nifi.security.truststoreType />
+ <nifi.security.truststorePasswd />
+ <nifi.security.needClientAuth />
+ <nifi.security.authorizedUsers.file>./conf/authorized-users.xml</nifi.security.authorizedUsers.file>
+ <nifi.security.user.credential.cache.duration>24 hours</nifi.security.user.credential.cache.duration>
+ <nifi.security.user.authority.provider>file-provider</nifi.security.user.authority.provider>
+ <nifi.security.x509.principal.extractor />
+ <nifi.security.support.new.account.requests />
+ <nifi.security.ocsp.responder.url />
+ <nifi.security.ocsp.responder.certificate />
- <nifi.flowfile.repository.implementation>org.apache.nifi.controller.repository.WriteAheadFlowFileRepository</nifi.flowfile.repository.implementation>
- <nifi.flowfile.repository.directory>./flowfile_repository</nifi.flowfile.repository.directory>
- <nifi.flowfile.repository.partitions>256</nifi.flowfile.repository.partitions>
- <nifi.flowfile.repository.checkpoint.interval>2 mins</nifi.flowfile.repository.checkpoint.interval>
- <nifi.flowfile.repository.always.sync>false</nifi.flowfile.repository.always.sync>
- <nifi.swap.manager.implementation>org.apache.nifi.controller.FileSystemSwapManager</nifi.swap.manager.implementation>
- <nifi.queue.swap.threshold>20000</nifi.queue.swap.threshold>
- <nifi.swap.in.period>5 sec</nifi.swap.in.period>
- <nifi.swap.in.threads>1</nifi.swap.in.threads>
- <nifi.swap.out.period>5 sec</nifi.swap.out.period>
- <nifi.swap.out.threads>4</nifi.swap.out.threads>
-
- <nifi.content.repository.implementation>org.apache.nifi.controller.repository.FileSystemRepository</nifi.content.repository.implementation>
- <nifi.content.claim.max.appendable.size>10 MB</nifi.content.claim.max.appendable.size>
- <nifi.content.claim.max.flow.files>100</nifi.content.claim.max.flow.files>
- <nifi.content.repository.directory.default>./content_repository</nifi.content.repository.directory.default>
- <nifi.content.repository.archive.max.retention.period />
- <nifi.content.repository.archive.max.usage.percentage />
- <nifi.content.repository.archive.enabled>false</nifi.content.repository.archive.enabled>
- <nifi.content.repository.always.sync>false</nifi.content.repository.always.sync>
- <nifi.content.viewer.url />
-
- <nifi.restore.directory />
- <nifi.ui.banner.text />
- <nifi.ui.autorefresh.interval>30 sec</nifi.ui.autorefresh.interval>
- <nifi.nar.library.directory>./lib</nifi.nar.library.directory>
- <nifi.nar.working.directory>./work/nar/</nifi.nar.working.directory>
- <nifi.documentation.working.directory>./work/docs/components</nifi.documentation.working.directory>
-
- <nifi.sensitive.props.algorithm>PBEWITHMD5AND256BITAES-CBC-OPENSSL</nifi.sensitive.props.algorithm>
- <nifi.sensitive.props.provider>BC</nifi.sensitive.props.provider>
- <nifi.h2.url.append>;LOCK_TIMEOUT=25000;WRITE_DELAY=0;AUTO_SERVER=FALSE</nifi.h2.url.append>
+ <!-- nifi.properties: cluster common properties (cluster manager and nodes
+ must have same values) -->
+ <nifi.cluster.protocol.heartbeat.interval>5 sec</nifi.cluster.protocol.heartbeat.interval>
+ <nifi.cluster.protocol.is.secure>false</nifi.cluster.protocol.is.secure>
+ <nifi.cluster.protocol.socket.timeout>30 sec</nifi.cluster.protocol.socket.timeout>
+ <nifi.cluster.protocol.connection.handshake.timeout>45 sec</nifi.cluster.protocol.connection.handshake.timeout>
+ <nifi.cluster.protocol.use.multicast>false</nifi.cluster.protocol.use.multicast>
+ <nifi.cluster.protocol.multicast.address />
+ <nifi.cluster.protocol.multicast.port />
+ <nifi.cluster.protocol.multicast.service.broadcast.delay>500 ms</nifi.cluster.protocol.multicast.service.broadcast.delay>
+ <nifi.cluster.protocol.multicast.service.locator.attempts>3</nifi.cluster.protocol.multicast.service.locator.attempts>
+ <nifi.cluster.protocol.multicast.service.locator.attempts.delay>1 sec</nifi.cluster.protocol.multicast.service.locator.attempts.delay>
- <nifi.remote.input.socket.port>9990</nifi.remote.input.socket.port>
-
- <!-- persistent provenance repository properties -->
- <nifi.provenance.repository.implementation>org.apache.nifi.provenance.PersistentProvenanceRepository</nifi.provenance.repository.implementation>
- <nifi.provenance.repository.directory.default>./provenance_repository</nifi.provenance.repository.directory.default>
- <nifi.provenance.repository.max.storage.time>24 hours</nifi.provenance.repository.max.storage.time>
- <nifi.provenance.repository.max.storage.size>1 GB</nifi.provenance.repository.max.storage.size>
- <nifi.provenance.repository.rollover.time>5 mins</nifi.provenance.repository.rollover.time>
- <nifi.provenance.repository.rollover.size>100 MB</nifi.provenance.repository.rollover.size>
- <nifi.provenance.repository.query.threads>2</nifi.provenance.repository.query.threads>
- <nifi.provenance.repository.compress.on.rollover>true</nifi.provenance.repository.compress.on.rollover>
- <nifi.provenance.repository.indexed.fields>EventType, FlowFileUUID, Filename, ProcessorID</nifi.provenance.repository.indexed.fields>
- <nifi.provenance.repository.indexed.attributes />
- <nifi.provenance.repository.index.shard.size>500 MB</nifi.provenance.repository.index.shard.size>
- <nifi.provenance.repository.always.sync>false</nifi.provenance.repository.always.sync>
- <nifi.provenance.repository.journal.count>16</nifi.provenance.repository.journal.count>
-
- <!-- volatile provenance repository properties -->
- <nifi.provenance.repository.buffer.size>100000</nifi.provenance.repository.buffer.size>
-
- <!-- Component status repository properties -->
- <nifi.components.status.repository.implementation>org.apache.nifi.controller.status.history.VolatileComponentStatusRepository</nifi.components.status.repository.implementation>
- <nifi.components.status.repository.buffer.size>288</nifi.components.status.repository.buffer.size>
- <nifi.components.status.snapshot.frequency>5 mins</nifi.components.status.snapshot.frequency>
-
- <!-- nifi.properties: web properties -->
- <nifi.web.war.directory>./lib</nifi.web.war.directory>
- <nifi.web.http.host />
- <nifi.web.http.port>8080</nifi.web.http.port>
- <nifi.web.https.host />
- <nifi.web.https.port />
- <nifi.jetty.work.dir>./work/jetty</nifi.jetty.work.dir>
- <nifi.web.jetty.threads>200</nifi.web.jetty.threads>
-
- <!-- nifi.properties: security properties -->
- <nifi.security.keystore />
- <nifi.security.keystoreType />
- <nifi.security.keystorePasswd />
- <nifi.security.keyPasswd />
- <nifi.security.truststore />
- <nifi.security.truststoreType />
- <nifi.security.truststorePasswd />
- <nifi.security.needClientAuth />
- <nifi.security.authorizedUsers.file>./conf/authorized-users.xml</nifi.security.authorizedUsers.file>
- <nifi.security.user.credential.cache.duration>24 hours</nifi.security.user.credential.cache.duration>
- <nifi.security.user.authority.provider>file-provider</nifi.security.user.authority.provider>
- <nifi.security.x509.principal.extractor />
- <nifi.security.support.new.account.requests />
- <nifi.security.ocsp.responder.url />
- <nifi.security.ocsp.responder.certificate />
-
- <!-- nifi.properties: cluster common properties (cluster manager and nodes must have same values) -->
- <nifi.cluster.protocol.heartbeat.interval>5 sec</nifi.cluster.protocol.heartbeat.interval>
- <nifi.cluster.protocol.is.secure>false</nifi.cluster.protocol.is.secure>
- <nifi.cluster.protocol.socket.timeout>30 sec</nifi.cluster.protocol.socket.timeout>
- <nifi.cluster.protocol.connection.handshake.timeout>45 sec</nifi.cluster.protocol.connection.handshake.timeout>
- <nifi.cluster.protocol.use.multicast>false</nifi.cluster.protocol.use.multicast>
- <nifi.cluster.protocol.multicast.address />
- <nifi.cluster.protocol.multicast.port />
- <nifi.cluster.protocol.multicast.service.broadcast.delay>500 ms</nifi.cluster.protocol.multicast.service.broadcast.delay>
- <nifi.cluster.protocol.multicast.service.locator.attempts>3</nifi.cluster.protocol.multicast.service.locator.attempts>
- <nifi.cluster.protocol.multicast.service.locator.attempts.delay>1 sec</nifi.cluster.protocol.multicast.service.locator.attempts.delay>
+ <!-- nifi.properties: cluster node properties (only configure for cluster
+ nodes) -->
+ <nifi.cluster.is.node>false</nifi.cluster.is.node>
+ <nifi.cluster.node.address />
+ <nifi.cluster.node.protocol.port />
+ <nifi.cluster.node.protocol.threads>2</nifi.cluster.node.protocol.threads>
+ <nifi.cluster.node.unicast.manager.address />
+ <nifi.cluster.node.unicast.manager.protocol.port />
- <!-- nifi.properties: cluster node properties (only configure for cluster nodes) -->
- <nifi.cluster.is.node>false</nifi.cluster.is.node>
- <nifi.cluster.node.address />
- <nifi.cluster.node.protocol.port />
- <nifi.cluster.node.protocol.threads>2</nifi.cluster.node.protocol.threads>
- <nifi.cluster.node.unicast.manager.address />
- <nifi.cluster.node.unicast.manager.protocol.port />
-
- <!-- nifi.properties: cluster manager properties (only configure for cluster manager) -->
- <nifi.cluster.is.manager>false</nifi.cluster.is.manager>
- <nifi.cluster.manager.address />
- <nifi.cluster.manager.protocol.port />
- <nifi.cluster.manager.node.firewall.file />
- <nifi.cluster.manager.node.event.history.size>10</nifi.cluster.manager.node.event.history.size>
- <nifi.cluster.manager.node.api.connection.timeout>30 sec</nifi.cluster.manager.node.api.connection.timeout>
- <nifi.cluster.manager.node.api.read.timeout>30 sec</nifi.cluster.manager.node.api.read.timeout>
- <nifi.cluster.manager.node.api.request.threads>10</nifi.cluster.manager.node.api.request.threads>
- <nifi.cluster.manager.flow.retrieval.delay>5 sec</nifi.cluster.manager.flow.retrieval.delay>
- <nifi.cluster.manager.protocol.threads>10</nifi.cluster.manager.protocol.threads>
- <nifi.cluster.manager.safemode.duration>0 sec</nifi.cluster.manager.safemode.duration>
- </properties>
- <profiles>
- <profile>
- <id>rpm</id>
- <activation>
- <activeByDefault>false</activeByDefault>
- </activation>
- <build>
- <plugins>
- <plugin>
- <artifactId>maven-dependency-plugin</artifactId>
- <executions>
- <execution>
- <id>unpack-shared-resources</id>
- <goals>
- <goal>unpack-dependencies</goal>
- </goals>
- <phase>generate-resources</phase>
- <configuration>
- <outputDirectory>${project.build.directory}/generated-resources</outputDirectory>
- <includeArtifactIds>nifi-resources</includeArtifactIds>
- <includeGroupIds>org.apache.nifi</includeGroupIds>
- <excludeTransitive>false</excludeTransitive>
- </configuration>
- </execution>
- <execution>
- <id>unpack-docs</id>
- <goals>
- <goal>unpack-dependencies</goal>
- </goals>
- <phase>generate-resources</phase>
- <configuration>
- <outputDirectory>${project.build.directory}/generated-docs</outputDirectory>
- <includeArtifactIds>nifi-docs</includeArtifactIds>
- <includeGroupIds>org.apache.nifi</includeGroupIds>
- <excludeTransitive>false</excludeTransitive>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>rpm-maven-plugin</artifactId>
- <configuration>
- <summary>Apache NiFi (incubating)</summary>
- <description>Apache Nifi (incubating) is dataflow system based on the Flow-Based Programming concepts.</description>
- <license>Apache License, Version 2.0 and others (see included LICENSE file)</license>
- <url>http://nifi.incubator.apache.org</url>
- <group>Utilities</group>
- <prefix>/opt/nifi</prefix>
- <defineStatements>
- <defineStatement>_use_internal_dependency_generator 0</defineStatement>
- </defineStatements>
- <defaultDirmode>750</defaultDirmode>
- <defaultFilemode>640</defaultFilemode>
- <defaultUsername>root</defaultUsername>
- <defaultGroupname>root</defaultGroupname>
- </configuration>
- <executions>
- <execution>
- <id>build-bin-rpm</id>
- <goals>
- <goal>attached-rpm</goal>
- </goals>
- <configuration>
- <classifier>bin</classifier>
- <provides>
- <provide>nifi</provide>
- </provides>
- <mappings>
- <mapping>
- <directory>/opt/nifi/nifi-${project.version}</directory>
- </mapping>
- <mapping>
- <directory>/opt/nifi/nifi-${project.version}</directory>
- <sources>
- <source>
- <location>./LICENSE</location>
- </source>
- <source>
- <location>./NOTICE</location>
- </source>
- <source>
- <location>../DISCLAIMER</location>
- </source>
- <source>
- <location>./README.md</location>
- <destination>README</destination>
- </source>
- </sources>
- </mapping>
- <mapping>
- <directory>/opt/nifi/nifi-${project.version}/bin</directory>
- <filemode>750</filemode>
- <sources>
- <source>
- <location>${project.build.directory}/generated-resources/bin/nifi.sh</location>
- <destination>nifi.sh</destination>
- <filter>true</filter>
- </source>
- </sources>
- </mapping>
- <mapping>
- <directory>/opt/nifi/nifi-${project.version}/conf</directory>
- <configuration>true</configuration>
- <sources>
- <source>
- <location>${project.build.directory}/generated-resources/conf</location>
- <filter>true</filter>
- </source>
- </sources>
- </mapping>
- <mapping>
- <directory>/opt/nifi/nifi-${project.version}/lib</directory>
- <dependency>
- <excludes>
- <exclude>org.apache.nifi:nifi-bootstrap</exclude>
- <exclude>org.apache.nifi:nifi-resources</exclude>
- <exclude>org.apache.nifi:nifi-docs</exclude>
- </excludes>
- </dependency>
- </mapping>
- <mapping>
- <directory>/opt/nifi/nifi-${project.version}/lib/bootstrap</directory>
- <dependency>
- <includes>
- <include>org.apache.nifi:nifi-bootstrap</include>
- </includes>
- </dependency>
- </mapping>
- <mapping>
- <directory>/opt/nifi/nifi-${project.version}/docs</directory>
- <sources>
- <source>
- <location>${project.build.directory}/generated-docs</location>
- </source>
- </sources>
- </mapping>
- </mappings>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- </profile>
- </profiles>
+ <!-- nifi.properties: cluster manager properties (only configure for cluster
+ manager) -->
+ <nifi.cluster.is.manager>false</nifi.cluster.is.manager>
+ <nifi.cluster.manager.address />
+ <nifi.cluster.manager.protocol.port />
+ <nifi.cluster.manager.node.firewall.file />
+ <nifi.cluster.manager.node.event.history.size>10</nifi.cluster.manager.node.event.history.size>
+ <nifi.cluster.manager.node.api.connection.timeout>30 sec</nifi.cluster.manager.node.api.connection.timeout>
+ <nifi.cluster.manager.node.api.read.timeout>30 sec</nifi.cluster.manager.node.api.read.timeout>
+ <nifi.cluster.manager.node.api.request.threads>10</nifi.cluster.manager.node.api.request.threads>
+ <nifi.cluster.manager.flow.retrieval.delay>5 sec</nifi.cluster.manager.flow.retrieval.delay>
+ <nifi.cluster.manager.protocol.threads>10</nifi.cluster.manager.protocol.threads>
+ <nifi.cluster.manager.safemode.duration>0 sec</nifi.cluster.manager.safemode.duration>
+ </properties>
+ <profiles>
+ <profile>
+ <id>rpm</id>
+ <activation>
+ <activeByDefault>false</activeByDefault>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>unpack-shared-resources</id>
+ <goals>
+ <goal>unpack-dependencies</goal>
+ </goals>
+ <phase>generate-resources</phase>
+ <configuration>
+ <outputDirectory>${project.build.directory}/generated-resources</outputDirectory>
+ <includeArtifactIds>nifi-resources</includeArtifactIds>
+ <includeGroupIds>org.apache.nifi</includeGroupIds>
+ <excludeTransitive>false</excludeTransitive>
+ </configuration>
+ </execution>
+ <execution>
+ <id>unpack-docs</id>
+ <goals>
+ <goal>unpack-dependencies</goal>
+ </goals>
+ <phase>generate-resources</phase>
+ <configuration>
+ <outputDirectory>${project.build.directory}/generated-docs</outputDirectory>
+ <includeArtifactIds>nifi-docs</includeArtifactIds>
+ <includeGroupIds>org.apache.nifi</includeGroupIds>
+ <excludeTransitive>false</excludeTransitive>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>rpm-maven-plugin</artifactId>
+ <configuration>
+ <summary>Apache NiFi (incubating)</summary>
+ <description>Apache Nifi (incubating) is dataflow system based on
+ the Flow-Based Programming concepts.</description>
+ <license>Apache License, Version 2.0 and others (see included
+ LICENSE file)</license>
+ <url>http://nifi.incubator.apache.org</url>
+ <group>Utilities</group>
+ <prefix>/opt/nifi</prefix>
+ <defineStatements>
+ <defineStatement>_use_internal_dependency_generator 0</defineStatement>
+ </defineStatements>
+ <defaultDirmode>750</defaultDirmode>
+ <defaultFilemode>640</defaultFilemode>
+ <defaultUsername>root</defaultUsername>
+ <defaultGroupname>root</defaultGroupname>
+ </configuration>
+ <executions>
+ <execution>
+ <id>build-bin-rpm</id>
+ <goals>
+ <goal>attached-rpm</goal>
+ </goals>
+ <configuration>
+ <classifier>bin</classifier>
+ <provides>
+ <provide>nifi</provide>
+ </provides>
+ <mappings>
+ <mapping>
+ <directory>/opt/nifi/nifi-${project.version}</directory>
+ </mapping>
+ <mapping>
+ <directory>/opt/nifi/nifi-${project.version}</directory>
+ <sources>
+ <source>
+ <location>./LICENSE</location>
+ </source>
+ <source>
+ <location>./NOTICE</location>
+ </source>
+ <source>
+ <location>../DISCLAIMER</location>
+ </source>
+ <source>
+ <location>./README.md</location>
+ <destination>README</destination>
+ </source>
+ </sources>
+ </mapping>
+ <mapping>
+ <directory>/opt/nifi/nifi-${project.version}/bin</directory>
+ <filemode>750</filemode>
+ <sources>
+ <source>
+ <location>${project.build.directory}/generated-resources/bin/nifi.sh</location>
+ <destination>nifi.sh</destination>
+ <filter>true</filter>
+ </source>
+ </sources>
+ </mapping>
+ <mapping>
+ <directory>/opt/nifi/nifi-${project.version}/conf</directory>
+ <configuration>true</configuration>
+ <sources>
+ <source>
+ <location>${project.build.directory}/generated-resources/conf</location>
+ <filter>true</filter>
+ </source>
+ </sources>
+ </mapping>
+ <mapping>
+ <directory>/opt/nifi/nifi-${project.version}/lib</directory>
+ <dependency>
+ <excludes>
+ <exclude>org.apache.nifi:nifi-bootstrap</exclude>
+ <exclude>org.apache.nifi:nifi-resources</exclude>
+ <exclude>org.apache.nifi:nifi-docs</exclude>
+ </excludes>
+ </dependency>
+ </mapping>
+ <mapping>
+ <directory>/opt/nifi/nifi-${project.version}/lib/bootstrap</directory>
+ <dependency>
+ <includes>
+ <include>org.apache.nifi:nifi-bootstrap</include>
+ </includes>
+ </dependency>
+ </mapping>
+ <mapping>
+ <directory>/opt/nifi/nifi-${project.version}/docs</directory>
+ <sources>
+ <source>
+ <location>${project.build.directory}/generated-docs</location>
+ </source>
+ </sources>
+ </mapping>
+ </mappings>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
</project>
http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/e9cb3b30/nifi/nifi-commons/pom.xml
----------------------------------------------------------------------
diff --git a/nifi/nifi-commons/pom.xml b/nifi/nifi-commons/pom.xml
index 5358054..1d2ce46 100644
--- a/nifi/nifi-commons/pom.xml
+++ b/nifi/nifi-commons/pom.xml
@@ -36,5 +36,6 @@
<module>nifi-processor-utilities</module>
<module>nifi-write-ahead-log</module>
<module>nifi-site-to-site-client</module>
+ <module>nifi-hl7-query-language</module>
</modules>
</project>
http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/e9cb3b30/nifi/nifi-nar-bundles/nifi-social-media-bundle/nifi-social-media-nar/pom.xml
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-social-media-bundle/nifi-social-media-nar/pom.xml b/nifi/nifi-nar-bundles/nifi-social-media-bundle/nifi-social-media-nar/pom.xml
new file mode 100644
index 0000000..6da74dd
--- /dev/null
+++ b/nifi/nifi-nar-bundles/nifi-social-media-bundle/nifi-social-media-nar/pom.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-social-media-bundle</artifactId>
+ <version>0.1.0-incubating-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>nifi-social-media-nar</artifactId>
+ <packaging>nar</packaging>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-twitter-processors</artifactId>
+ <version>0.1.0-incubating-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+
+</project>
http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/e9cb3b30/nifi/nifi-nar-bundles/nifi-social-media-bundle/nifi-twitter-processors/.gitignore
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-social-media-bundle/nifi-twitter-processors/.gitignore b/nifi/nifi-nar-bundles/nifi-social-media-bundle/nifi-twitter-processors/.gitignore
new file mode 100644
index 0000000..b83d222
--- /dev/null
+++ b/nifi/nifi-nar-bundles/nifi-social-media-bundle/nifi-twitter-processors/.gitignore
@@ -0,0 +1 @@
+/target/
http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/e9cb3b30/nifi/nifi-nar-bundles/nifi-social-media-bundle/nifi-twitter-processors/pom.xml
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-social-media-bundle/nifi-twitter-processors/pom.xml b/nifi/nifi-nar-bundles/nifi-social-media-bundle/nifi-twitter-processors/pom.xml
new file mode 100644
index 0000000..45af0ce
--- /dev/null
+++ b/nifi/nifi-nar-bundles/nifi-social-media-bundle/nifi-twitter-processors/pom.xml
@@ -0,0 +1,60 @@
+<?xml version="1.0"?>
+<!--
+ 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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-social-media-bundle</artifactId>
+ <version>0.1.0-incubating-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>nifi-twitter-processors</artifactId>
+ <packaging>jar</packaging>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-processor-utils</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>com.twitter</groupId>
+ <artifactId>hbc-twitter4j</artifactId>
+ <version>2.2.0</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-mock</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-simple</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+</project>
http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/e9cb3b30/nifi/nifi-nar-bundles/nifi-social-media-bundle/nifi-twitter-processors/src/main/java/org/apache/nifi/processors/twitter/GetTwitter.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-social-media-bundle/nifi-twitter-processors/src/main/java/org/apache/nifi/processors/twitter/GetTwitter.java b/nifi/nifi-nar-bundles/nifi-social-media-bundle/nifi-twitter-processors/src/main/java/org/apache/nifi/processors/twitter/GetTwitter.java
new file mode 100644
index 0000000..45b1ae1
--- /dev/null
+++ b/nifi/nifi-nar-bundles/nifi-social-media-bundle/nifi-twitter-processors/src/main/java/org/apache/nifi/processors/twitter/GetTwitter.java
@@ -0,0 +1,360 @@
+/*
+ * 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.twitter;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.net.MalformedURLException;
+import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.BlockingQueue;
+import java.util.concurrent.LinkedBlockingQueue;
+import java.util.regex.Pattern;
+
+import org.apache.nifi.annotation.behavior.SupportsBatching;
+import org.apache.nifi.annotation.behavior.WritesAttribute;
+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.annotation.lifecycle.OnStopped;
+import org.apache.nifi.components.AllowableValue;
+import org.apache.nifi.components.PropertyDescriptor;
+import org.apache.nifi.components.ValidationContext;
+import org.apache.nifi.components.ValidationResult;
+import org.apache.nifi.components.Validator;
+import org.apache.nifi.flowfile.FlowFile;
+import org.apache.nifi.flowfile.attributes.CoreAttributes;
+import org.apache.nifi.processor.AbstractProcessor;
+import org.apache.nifi.processor.ProcessContext;
+import org.apache.nifi.processor.ProcessSession;
+import org.apache.nifi.processor.ProcessorInitializationContext;
+import org.apache.nifi.processor.Relationship;
+import org.apache.nifi.processor.exception.ProcessException;
+import org.apache.nifi.processor.io.OutputStreamCallback;
+import org.apache.nifi.processor.util.StandardValidators;
+
+import com.twitter.hbc.ClientBuilder;
+import com.twitter.hbc.core.Client;
+import com.twitter.hbc.core.Constants;
+import com.twitter.hbc.core.endpoint.StatusesFilterEndpoint;
+import com.twitter.hbc.core.endpoint.StatusesFirehoseEndpoint;
+import com.twitter.hbc.core.endpoint.StatusesSampleEndpoint;
+import com.twitter.hbc.core.endpoint.StreamingEndpoint;
+import com.twitter.hbc.core.event.Event;
+import com.twitter.hbc.core.processor.StringDelimitedProcessor;
+import com.twitter.hbc.httpclient.auth.Authentication;
+import com.twitter.hbc.httpclient.auth.OAuth1;
+
+@SupportsBatching
+@Tags({"twitter", "tweets", "social media", "status", "json"})
+@CapabilityDescription("Pulls status changes from Twitter's streaming API")
+@WritesAttribute(attribute="mime.type", description="Sets mime type to application/json")
+public class GetTwitter extends AbstractProcessor {
+
+ static final AllowableValue ENDPOINT_SAMPLE = new AllowableValue("Sample Endpoint", "Sample Endpoint", "The endpoint that provides public data, aka a 'garden hose'");
+ static final AllowableValue ENDPOINT_FIREHOSE = new AllowableValue("Firehose Endpoint", "Firehose Endpoint", "The endpoint that provides access to all tweets");
+ static final AllowableValue ENDPOINT_FILTER = new AllowableValue("Filter Endpoint", "Filter Endpoint", "Endpoint that allows the stream to be filtered by specific terms or User IDs");
+
+ public static final PropertyDescriptor ENDPOINT = new PropertyDescriptor.Builder()
+ .name("Twitter Endpoint")
+ .description("Specifies which endpoint data should be pulled from")
+ .required(true)
+ .allowableValues(ENDPOINT_SAMPLE, ENDPOINT_FIREHOSE, ENDPOINT_FILTER)
+ .defaultValue(ENDPOINT_SAMPLE.getValue())
+ .build();
+ public static final PropertyDescriptor CONSUMER_KEY = new PropertyDescriptor.Builder()
+ .name("Consumer Key")
+ .description("The Consumer Key provided by Twitter")
+ .required(true)
+ .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
+ .build();
+ public static final PropertyDescriptor CONSUMER_SECRET = new PropertyDescriptor.Builder()
+ .name("Consumer Secret")
+ .description("The Consumer Secret provided by Twitter")
+ .required(true)
+ .sensitive(true)
+ .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
+ .build();
+ public static final PropertyDescriptor ACCESS_TOKEN = new PropertyDescriptor.Builder()
+ .name("Access Token")
+ .description("The Acces Token provided by Twitter")
+ .required(true)
+ .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
+ .build();
+ public static final PropertyDescriptor ACCESS_TOKEN_SECRET = new PropertyDescriptor.Builder()
+ .name("Access Token Secret")
+ .description("The Access Token Secret provided by Twitter")
+ .required(true)
+ .sensitive(true)
+ .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
+ .build();
+ public static final PropertyDescriptor LANGUAGES = new PropertyDescriptor.Builder()
+ .name("Languages")
+ .description("A comma-separated list of languages for which tweets should be fetched")
+ .required(false)
+ .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
+ .build();
+ public static final PropertyDescriptor FOLLOWING = new PropertyDescriptor.Builder()
+ .name("IDs to Follow")
+ .description("A comma-separated list of Twitter User ID's to follow. Ignored unless Endpoint is set to 'Filter Endpoint'.")
+ .required(false)
+ .addValidator(new FollowingValidator())
+ .build();
+ public static final PropertyDescriptor TERMS = new PropertyDescriptor.Builder()
+ .name("Terms to Filter On")
+ .description("A comma-separated list of terms to filter on. Ignored unless Endpoint is set to 'Filter Endpoint'. The filter works such that if any term matches, the status update will be retrieved; multiple terms separated by a space function as an 'AND'. I.e., 'it was, hello' will retrieve status updates that have either 'hello' or both 'it' AND 'was'")
+ .required(false)
+ .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
+ .build();
+
+
+ public static final Relationship REL_SUCCESS = new Relationship.Builder()
+ .name("success")
+ .description("All status updates will be routed to this relationship")
+ .build();
+
+ private List<PropertyDescriptor> descriptors;
+ private Set<Relationship> relationships;
+
+ private final BlockingQueue<Event> eventQueue = new LinkedBlockingQueue<Event>(1000);
+
+ private volatile Client client;
+ private volatile BlockingQueue<String> messageQueue;
+
+ @Override
+ protected void init(final ProcessorInitializationContext context) {
+ final List<PropertyDescriptor> descriptors = new ArrayList<PropertyDescriptor>();
+ descriptors.add(ENDPOINT);
+ descriptors.add(CONSUMER_KEY);
+ descriptors.add(CONSUMER_SECRET);
+ descriptors.add(ACCESS_TOKEN);
+ descriptors.add(ACCESS_TOKEN_SECRET);
+ descriptors.add(LANGUAGES);
+ descriptors.add(TERMS);
+ descriptors.add(FOLLOWING);
+ this.descriptors = Collections.unmodifiableList(descriptors);
+
+ final Set<Relationship> relationships = new HashSet<Relationship>();
+ relationships.add(REL_SUCCESS);
+ this.relationships = Collections.unmodifiableSet(relationships);
+ }
+
+ @Override
+ public Set<Relationship> getRelationships() {
+ return this.relationships;
+ }
+
+ @Override
+ public final List<PropertyDescriptor> getSupportedPropertyDescriptors() {
+ return descriptors;
+ }
+
+ @Override
+ protected PropertyDescriptor getSupportedDynamicPropertyDescriptor(final String propertyDescriptorName) {
+ return new PropertyDescriptor.Builder()
+ .name(propertyDescriptorName)
+ .description("Adds a query parameter with name '" + propertyDescriptorName + "' to the Twitter query")
+ .required(false)
+ .dynamic(true)
+ .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
+ .build();
+ }
+
+ @Override
+ protected Collection<ValidationResult> customValidate(final ValidationContext validationContext) {
+ final List<ValidationResult> results = new ArrayList<>();
+ final String endpointName = validationContext.getProperty(ENDPOINT).getValue();
+
+ if ( ENDPOINT_FILTER.getValue().equals(endpointName) ) {
+ if ( !validationContext.getProperty(TERMS).isSet() && !validationContext.getProperty(FOLLOWING).isSet() ) {
+ results.add(new ValidationResult.Builder().input("").subject(FOLLOWING.getName()).valid(false).explanation("When using the 'Filter Endpoint', at least one of '" + TERMS.getName() + "' or '" + FOLLOWING.getName() + "' must be set").build());
+ }
+ }
+
+ return results;
+ }
+
+ @Override
+ public void onPropertyModified(final PropertyDescriptor descriptor, final String oldValue, final String newValue) {
+ // if any property is modified, the results are no longer valid. Destroy all messages in teh queue.
+ messageQueue.clear();
+ }
+
+ @OnScheduled
+ public void onScheduled(final ProcessContext context) throws MalformedURLException {
+ messageQueue = new LinkedBlockingQueue<>(100000);
+
+ final String endpointName = context.getProperty(ENDPOINT).getValue();
+ final Authentication oauth = new OAuth1(context.getProperty(CONSUMER_KEY).getValue(),
+ context.getProperty(CONSUMER_SECRET).getValue(),
+ context.getProperty(ACCESS_TOKEN).getValue(),
+ context.getProperty(ACCESS_TOKEN_SECRET).getValue());
+
+ final ClientBuilder clientBuilder = new ClientBuilder();
+ clientBuilder.name("GetTwitter[id=" + getIdentifier() + "]")
+ .authentication(oauth)
+ .eventMessageQueue(eventQueue)
+ .processor(new StringDelimitedProcessor(messageQueue));
+
+ final String languageString = context.getProperty(LANGUAGES).getValue();
+ final List<String> languages;
+ if ( languageString == null ) {
+ languages = null;
+ } else {
+ languages = new ArrayList<>();
+ for ( final String language : context.getProperty(LANGUAGES).getValue().split(",") ) {
+ languages.add(language.trim());
+ }
+ }
+
+ final String host;
+ final StreamingEndpoint streamingEndpoint;
+ if ( ENDPOINT_SAMPLE.getValue().equals(endpointName) ) {
+ host = Constants.STREAM_HOST;
+ final StatusesSampleEndpoint sse = new StatusesSampleEndpoint();
+ streamingEndpoint = sse;
+ if ( languages != null ) {
+ sse.languages(languages);
+ }
+ } else if ( ENDPOINT_FIREHOSE.getValue().equals(endpointName) ) {
+ host = Constants.STREAM_HOST;
+ final StatusesFirehoseEndpoint firehoseEndpoint = new StatusesFirehoseEndpoint();
+ streamingEndpoint = firehoseEndpoint;
+ if ( languages != null ) {
+ firehoseEndpoint.languages(languages);
+ }
+ } else if ( ENDPOINT_FILTER.getValue().equals(endpointName) ) {
+ host = Constants.STREAM_HOST;
+ final StatusesFilterEndpoint filterEndpoint = new StatusesFilterEndpoint();
+
+ final String followingString = context.getProperty(FOLLOWING).getValue();
+ final List<Long> followingIds;
+ if ( followingString == null ) {
+ followingIds = Collections.emptyList();
+ } else {
+ followingIds = new ArrayList<>();
+
+ for ( final String split : followingString.split(",") ) {
+ final Long id = Long.parseLong(split.trim());
+ followingIds.add(id);
+ }
+ }
+
+ final String termString = context.getProperty(TERMS).getValue();
+ final List<String> terms;
+ if ( termString == null ) {
+ terms = Collections.emptyList();
+ } else {
+ terms = new ArrayList<>();
+ for ( final String split : termString.split(",") ) {
+ terms.add(split.trim());
+ }
+ }
+
+ if ( !terms.isEmpty() ) {
+ filterEndpoint.trackTerms(terms);
+ }
+
+ if ( !followingIds.isEmpty() ) {
+ filterEndpoint.followings(followingIds);
+ }
+
+ if ( languages != null ) {
+ filterEndpoint.languages(languages);
+ }
+ streamingEndpoint = filterEndpoint;
+ } else {
+ throw new AssertionError("Endpoint was invalid value: " + endpointName);
+ }
+
+ clientBuilder.hosts(host).endpoint(streamingEndpoint);
+ client = clientBuilder.build();
+ client.connect();
+ }
+
+ @OnStopped
+ public void shutdownClient() {
+ if ( client != null ) {
+ client.stop();
+ }
+ }
+
+ @Override
+ public void onTrigger(final ProcessContext context, final ProcessSession session) throws ProcessException {
+ final Event event = eventQueue.poll();
+ if ( event != null ) {
+ switch (event.getEventType()) {
+ case STOPPED_BY_ERROR:
+ getLogger().error("Received error {}: {} due to {}. Will not attempt to reconnect", new Object[] {event.getEventType(), event.getMessage(), event.getUnderlyingException()});
+ break;
+ case CONNECTION_ERROR:
+ case HTTP_ERROR:
+ getLogger().error("Received error {}: {}. Will attempt to reconnect", new Object[] {event.getEventType(), event.getMessage()});
+ client.reconnect();
+ break;
+ default:
+ break;
+ }
+ }
+
+ final String tweet = messageQueue.poll();
+ if ( tweet == null ) {
+ context.yield();
+ return;
+ }
+
+ FlowFile flowFile = session.create();
+ flowFile = session.write(flowFile, new OutputStreamCallback() {
+ @Override
+ public void process(final OutputStream out) throws IOException {
+ out.write(tweet.getBytes(StandardCharsets.UTF_8));
+ }
+ });
+
+ final Map<String, String> attributes = new HashMap<>();
+ attributes.put(CoreAttributes.MIME_TYPE.key(), "application/json");
+ attributes.put(CoreAttributes.FILENAME.key(), flowFile.getAttribute(CoreAttributes.FILENAME.key()) + ".json");
+ flowFile = session.putAllAttributes(flowFile, attributes);
+
+ session.transfer(flowFile, REL_SUCCESS);
+ session.getProvenanceReporter().receive(flowFile, Constants.STREAM_HOST + client.getEndpoint().getURI().toString());
+ }
+
+ private static class FollowingValidator implements Validator {
+ private static final Pattern NUMBER_PATTERN = Pattern.compile("\\d+");
+
+ @Override
+ public ValidationResult validate(final String subject, final String input, final ValidationContext context) {
+ final String[] splits = input.split(",");
+ for ( final String split : splits ) {
+ if ( !NUMBER_PATTERN.matcher(split.trim()).matches() ) {
+ return new ValidationResult.Builder().input(input).subject(subject).valid(false).explanation("Must be comma-separted list of User ID's").build();
+ }
+ }
+
+ return new ValidationResult.Builder().subject(subject).input(input).valid(true).build();
+ }
+
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/e9cb3b30/nifi/nifi-nar-bundles/nifi-social-media-bundle/nifi-twitter-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-social-media-bundle/nifi-twitter-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor b/nifi/nifi-nar-bundles/nifi-social-media-bundle/nifi-twitter-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor
new file mode 100644
index 0000000..9504a11
--- /dev/null
+++ b/nifi/nifi-nar-bundles/nifi-social-media-bundle/nifi-twitter-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor
@@ -0,0 +1,16 @@
+# 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.
+
+org.apache.nifi.processors.twitter.GetTwitter
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/e9cb3b30/nifi/nifi-nar-bundles/nifi-social-media-bundle/pom.xml
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-social-media-bundle/pom.xml b/nifi/nifi-nar-bundles/nifi-social-media-bundle/pom.xml
new file mode 100644
index 0000000..5aadbce
--- /dev/null
+++ b/nifi/nifi-nar-bundles/nifi-social-media-bundle/pom.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-nar-bundles</artifactId>
+ <version>0.1.0-incubating-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>nifi-social-media-bundle</artifactId>
+ <packaging>pom</packaging>
+
+ <modules>
+ <module>nifi-twitter-processors</module>
+ <module>nifi-social-media-nar</module>
+ </modules>
+
+</project>
http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/e9cb3b30/nifi/nifi-nar-bundles/pom.xml
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/pom.xml b/nifi/nifi-nar-bundles/pom.xml
index e7c122d..50a9407 100644
--- a/nifi/nifi-nar-bundles/pom.xml
+++ b/nifi/nifi-nar-bundles/pom.xml
@@ -35,6 +35,10 @@
<module>nifi-update-attribute-bundle</module>
<module>nifi-kafka-bundle</module>
<module>nifi-kite-bundle</module>
+ <module>nifi-social-media-bundle</module>
+ <module>nifi-geo-bundle</module>
+ <module>nifi-hl7-bundle</module>
+ <module>nifi-language-translation-bundle</module>
</modules>
<dependencyManagement>
<dependencies>
http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/e9cb3b30/nifi/pom.xml
----------------------------------------------------------------------
diff --git a/nifi/pom.xml b/nifi/pom.xml
index 2e2346a..9b8bfb4 100644
--- a/nifi/pom.xml
+++ b/nifi/pom.xml
@@ -800,6 +800,30 @@
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-social-media-nar</artifactId>
+ <version>0.1.0-incubating-SNAPSHOT</version>
+ <type>nar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-hl7-nar</artifactId>
+ <version>0.1.0-incubating-SNAPSHOT</version>
+ <type>nar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-language-translation-nar</artifactId>
+ <version>0.1.0-incubating-SNAPSHOT</version>
+ <type>nar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-geo-nar</artifactId>
+ <version>0.1.0-incubating-SNAPSHOT</version>
+ <type>nar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
<artifactId>nifi-properties</artifactId>
<version>0.1.0-incubating-SNAPSHOT</version>
</dependency>