diff --git a/README.md b/README.md index d7a04c4098..8a4fdba757 100644 --- a/README.md +++ b/README.md @@ -24,9 +24,11 @@ Apache NiFi is an easy to use, powerful, and reliable system to process and dist ## Getting Started -- Read through the [quickstart guide for development](http://nifi.incubator.apache.org/development/quickstart.html). +- Read through the [quickstart guide for development](http://nifi.incubator.apache.org/quickstart.html). It will include information on getting a local copy of the source, give pointers on issue tracking, and provide some warnings about common problems with development environments. +- For a more comprehensive guide to development and information about contributing to the project + read through the [NiFi Developer's Guide](http://nifi.incubator.apache.org/developer-guide.html). - Optional: Build supporting modules. This should only be needed if the current 'nifi' module is in the process of updating to a new version of either the 'nifi-parent' or 'nifi-nar-maven-plugin' artifacts. diff --git a/nifi-nar-maven-plugin/pom.xml b/nifi-nar-maven-plugin/pom.xml index 95cee00528..f6e104c311 100644 --- a/nifi-nar-maven-plugin/pom.xml +++ b/nifi-nar-maven-plugin/pom.xml @@ -18,11 +18,11 @@ org.apache.nifi nifi-parent - 1.0.0-incubating-SNAPSHOT + 1.0.0-incubating nifi-nar-maven-plugin - 1.0.1-incubating-SNAPSHOT + 1.0.2-incubating-SNAPSHOT maven-plugin Apache NiFi Nar Plugin. It is currently a part of the Apache Incubator. diff --git a/nifi-parent/pom.xml b/nifi-parent/pom.xml index fb2f827b7d..9ccb6ec2bf 100644 --- a/nifi-parent/pom.xml +++ b/nifi-parent/pom.xml @@ -23,7 +23,7 @@ org.apache.nifi nifi-parent - 1.0.0-incubating-SNAPSHOT + 1.0.1-incubating-SNAPSHOT pom The nifi-parent enables each apache nifi project to ensure consistent approaches and DRY http://nifi.incubator.apache.org diff --git a/nifi/nifi-api/pom.xml b/nifi/nifi-api/pom.xml index 0321a43c80..fc156295b0 100644 --- a/nifi/nifi-api/pom.xml +++ b/nifi/nifi-api/pom.xml @@ -18,7 +18,7 @@ org.apache.nifi nifi - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-api jar diff --git a/nifi/nifi-assembly/NOTICE b/nifi/nifi-assembly/NOTICE index 0edfd961b1..9d896395f8 100644 --- a/nifi/nifi-assembly/NOTICE +++ b/nifi/nifi-assembly/NOTICE @@ -491,6 +491,10 @@ The following binary components are provided under the Apache Software License v This product includes software developed by Saxonica (http://www.saxonica.com/). + (ASLv2) MongoDB Java Driver + The following NOTICE information applies: + Copyright (C) 2008-2013 10gen, Inc. + (ASLv2) Parquet MR The following NOTICE information applies: Parquet MR diff --git a/nifi/nifi-assembly/pom.xml b/nifi/nifi-assembly/pom.xml index 1ac52bbaae..cfe1de6f96 100644 --- a/nifi/nifi-assembly/pom.xml +++ b/nifi/nifi-assembly/pom.xml @@ -9,13 +9,12 @@ 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. --> - + 4.0.0 org.apache.nifi nifi - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-assembly pom @@ -163,6 +162,11 @@ language governing permissions and limitations under the License. --> nifi-kite-nar nar + + org.apache.nifi + nifi-mongodb-nar + nar + org.apache.nifi nifi-solr-nar @@ -171,25 +175,25 @@ language governing permissions and limitations under the License. --> org.apache.nifi nifi-social-media-nar - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nar org.apache.nifi nifi-hl7-nar - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nar org.apache.nifi nifi-language-translation-nar - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nar org.apache.nifi nifi-geo-nar - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nar diff --git a/nifi/nifi-bootstrap/pom.xml b/nifi/nifi-bootstrap/pom.xml index 489f491537..6e467ba0e7 100644 --- a/nifi/nifi-bootstrap/pom.xml +++ b/nifi/nifi-bootstrap/pom.xml @@ -17,7 +17,7 @@ org.apache.nifi nifi - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-bootstrap jar diff --git a/nifi/nifi-commons/nifi-data-provenance-utils/pom.xml b/nifi/nifi-commons/nifi-data-provenance-utils/pom.xml index de4fc93157..df9164df78 100644 --- a/nifi/nifi-commons/nifi-data-provenance-utils/pom.xml +++ b/nifi/nifi-commons/nifi-data-provenance-utils/pom.xml @@ -17,7 +17,7 @@ org.apache.nifi nifi-commons - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-data-provenance-utils jar diff --git a/nifi/nifi-commons/nifi-expression-language/pom.xml b/nifi/nifi-commons/nifi-expression-language/pom.xml index e27f5b1e17..8e4aee5333 100644 --- a/nifi/nifi-commons/nifi-expression-language/pom.xml +++ b/nifi/nifi-commons/nifi-expression-language/pom.xml @@ -17,7 +17,7 @@ org.apache.nifi nifi-commons - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-expression-language jar diff --git a/nifi/nifi-commons/nifi-flowfile-packager/pom.xml b/nifi/nifi-commons/nifi-flowfile-packager/pom.xml index a1288e9213..979980f7b8 100644 --- a/nifi/nifi-commons/nifi-flowfile-packager/pom.xml +++ b/nifi/nifi-commons/nifi-flowfile-packager/pom.xml @@ -17,7 +17,7 @@ org.apache.nifi nifi-commons - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-flowfile-packager jar diff --git a/nifi/nifi-commons/nifi-hl7-query-language/pom.xml b/nifi/nifi-commons/nifi-hl7-query-language/pom.xml index bcd489effe..455d107739 100644 --- a/nifi/nifi-commons/nifi-hl7-query-language/pom.xml +++ b/nifi/nifi-commons/nifi-hl7-query-language/pom.xml @@ -13,14 +13,13 @@ See the License for the specific language governing permissions and limitations under the License. --> - + 4.0.0 org.apache.nifi nifi-commons - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-hl7-query-language diff --git a/nifi/nifi-commons/nifi-logging-utils/pom.xml b/nifi/nifi-commons/nifi-logging-utils/pom.xml index ea7cff9cee..0a5c9b6826 100644 --- a/nifi/nifi-commons/nifi-logging-utils/pom.xml +++ b/nifi/nifi-commons/nifi-logging-utils/pom.xml @@ -18,7 +18,7 @@ org.apache.nifi nifi-commons - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-logging-utils Utilities for logging diff --git a/nifi/nifi-commons/nifi-processor-utilities/pom.xml b/nifi/nifi-commons/nifi-processor-utilities/pom.xml index 8034e828f4..b06ce46ec3 100644 --- a/nifi/nifi-commons/nifi-processor-utilities/pom.xml +++ b/nifi/nifi-commons/nifi-processor-utilities/pom.xml @@ -18,7 +18,7 @@ org.apache.nifi nifi-commons - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-processor-utils jar diff --git a/nifi/nifi-commons/nifi-properties/pom.xml b/nifi/nifi-commons/nifi-properties/pom.xml index 5f6853a674..455304d236 100644 --- a/nifi/nifi-commons/nifi-properties/pom.xml +++ b/nifi/nifi-commons/nifi-properties/pom.xml @@ -18,7 +18,7 @@ org.apache.nifi nifi-commons - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-properties diff --git a/nifi/nifi-commons/nifi-security-utils/pom.xml b/nifi/nifi-commons/nifi-security-utils/pom.xml index 91912a56d5..f6214982ad 100644 --- a/nifi/nifi-commons/nifi-security-utils/pom.xml +++ b/nifi/nifi-commons/nifi-security-utils/pom.xml @@ -17,7 +17,7 @@ org.apache.nifi nifi-commons - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-security-utils Contains security functionality. diff --git a/nifi/nifi-commons/nifi-site-to-site-client/pom.xml b/nifi/nifi-commons/nifi-site-to-site-client/pom.xml index c024be6f2f..98570d8288 100644 --- a/nifi/nifi-commons/nifi-site-to-site-client/pom.xml +++ b/nifi/nifi-commons/nifi-site-to-site-client/pom.xml @@ -19,7 +19,7 @@ org.apache.nifi nifi-commons - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-site-to-site-client @@ -42,7 +42,7 @@ org.apache.nifi nifi-client-dto - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT diff --git a/nifi/nifi-commons/nifi-socket-utils/pom.xml b/nifi/nifi-commons/nifi-socket-utils/pom.xml index 49bede8488..6eaad22440 100644 --- a/nifi/nifi-commons/nifi-socket-utils/pom.xml +++ b/nifi/nifi-commons/nifi-socket-utils/pom.xml @@ -18,7 +18,7 @@ org.apache.nifi nifi-commons - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-socket-utils Utilities for socket communication diff --git a/nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/nio/ChannelDispatcher.java b/nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/nio/ChannelDispatcher.java index 824f2df990..a4308e319c 100644 --- a/nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/nio/ChannelDispatcher.java +++ b/nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/nio/ChannelDispatcher.java @@ -45,17 +45,19 @@ public final class ChannelDispatcher implements Runnable { private final StreamConsumerFactory factory; private final AtomicLong channelReaderFrequencyMilliseconds = new AtomicLong(DEFAULT_CHANNEL_READER_PERIOD_MILLISECONDS); private final long timeout; + private final boolean readSingleDatagram; private volatile boolean stop = false; public static final long DEFAULT_CHANNEL_READER_PERIOD_MILLISECONDS = 100L; public ChannelDispatcher(final Selector serverSocketSelector, final Selector socketChannelSelector, final ScheduledExecutorService service, - final StreamConsumerFactory factory, final BufferPool buffers, final long timeout, final TimeUnit unit) { + final StreamConsumerFactory factory, final BufferPool buffers, final long timeout, final TimeUnit unit, final boolean readSingleDatagram) { this.serverSocketSelector = serverSocketSelector; this.socketChannelSelector = socketChannelSelector; this.executor = service; this.factory = factory; emptyBuffers = buffers; this.timeout = TimeUnit.MILLISECONDS.convert(timeout, unit); + this.readSingleDatagram = readSingleDatagram; } public void setChannelReaderFrequency(final long period, final TimeUnit timeUnit) { @@ -136,7 +138,7 @@ public final class ChannelDispatcher implements Runnable { // for a DatagramChannel we don't want to create a new reader unless it is a new DatagramChannel. The only // way to tell if it's new is the lack of an attachment. if (channel instanceof DatagramChannel && socketChannelKey.attachment() == null) { - reader = new DatagramChannelReader(UUID.randomUUID().toString(), socketChannelKey, emptyBuffers, factory); + reader = new DatagramChannelReader(UUID.randomUUID().toString(), socketChannelKey, emptyBuffers, factory, readSingleDatagram); socketChannelKey.attach(reader); final ScheduledFuture readerFuture = executor.scheduleWithFixedDelay(reader, 10L, channelReaderFrequencyMilliseconds.get(), TimeUnit.MILLISECONDS); diff --git a/nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/nio/ChannelListener.java b/nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/nio/ChannelListener.java index 7cbf589a92..ab770636eb 100644 --- a/nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/nio/ChannelListener.java +++ b/nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/nio/ChannelListener.java @@ -75,14 +75,14 @@ public final class ChannelListener { private volatile long channelReaderFrequencyMSecs = 50; public ChannelListener(final int threadPoolSize, final StreamConsumerFactory consumerFactory, final BufferPool bufferPool, int timeout, - TimeUnit unit) throws IOException { + TimeUnit unit, final boolean readSingleDatagram) throws IOException { this.executor = Executors.newScheduledThreadPool(threadPoolSize + 1); // need to allow for long running ChannelDispatcher thread this.serverSocketSelector = Selector.open(); this.socketChannelSelector = Selector.open(); this.bufferPool = bufferPool; this.initialBufferPoolSize = bufferPool.size(); channelDispatcher = new ChannelDispatcher(serverSocketSelector, socketChannelSelector, executor, consumerFactory, bufferPool, - timeout, unit); + timeout, unit, readSingleDatagram); executor.schedule(channelDispatcher, 50, TimeUnit.MILLISECONDS); } diff --git a/nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/nio/DatagramChannelReader.java b/nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/nio/DatagramChannelReader.java index db76279921..a4670b97c9 100644 --- a/nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/nio/DatagramChannelReader.java +++ b/nifi/nifi-commons/nifi-socket-utils/src/main/java/org/apache/nifi/io/nio/DatagramChannelReader.java @@ -27,8 +27,12 @@ public final class DatagramChannelReader extends AbstractChannelReader { public static final int MAX_UDP_PACKET_SIZE = 65507; - public DatagramChannelReader(final String id, final SelectionKey key, final BufferPool empties, final StreamConsumerFactory consumerFactory) { + private final boolean readSingleDatagram; + + public DatagramChannelReader(final String id, final SelectionKey key, final BufferPool empties, final StreamConsumerFactory consumerFactory, + final boolean readSingleDatagram) { super(id, key, empties, consumerFactory); + this.readSingleDatagram = readSingleDatagram; } /** @@ -45,7 +49,7 @@ public final class DatagramChannelReader extends AbstractChannelReader { final DatagramChannel dChannel = (DatagramChannel) key.channel(); final int initialBufferPosition = buffer.position(); while (buffer.remaining() > MAX_UDP_PACKET_SIZE && key.isValid() && key.isReadable()) { - if (dChannel.receive(buffer) == null) { + if (dChannel.receive(buffer) == null || readSingleDatagram) { break; } } diff --git a/nifi/nifi-commons/nifi-socket-utils/src/test/java/org/apache/nifi/io/nio/example/ServerMain.java b/nifi/nifi-commons/nifi-socket-utils/src/test/java/org/apache/nifi/io/nio/example/ServerMain.java index 27d5ccc7ee..a266ade5f6 100644 --- a/nifi/nifi-commons/nifi-socket-utils/src/test/java/org/apache/nifi/io/nio/example/ServerMain.java +++ b/nifi/nifi-commons/nifi-socket-utils/src/test/java/org/apache/nifi/io/nio/example/ServerMain.java @@ -52,7 +52,7 @@ public final class ServerMain { ChannelListener listener = null; try { executor.scheduleWithFixedDelay(bufferPool, 0L, 5L, TimeUnit.SECONDS); - listener = new ChannelListener(5, new ExampleStreamConsumerFactory(executor, consumerMap), bufferPool, 5, TimeUnit.MILLISECONDS); + listener = new ChannelListener(5, new ExampleStreamConsumerFactory(executor, consumerMap), bufferPool, 5, TimeUnit.MILLISECONDS, false); listener.setChannelReaderSchedulingPeriod(50L, TimeUnit.MILLISECONDS); listener.addDatagramChannel(null, 20000, 32 << 20); LOGGER.info("Listening for UDP data on port 20000"); diff --git a/nifi/nifi-commons/nifi-utils/pom.xml b/nifi/nifi-commons/nifi-utils/pom.xml index 347478637a..51100858ea 100644 --- a/nifi/nifi-commons/nifi-utils/pom.xml +++ b/nifi/nifi-commons/nifi-utils/pom.xml @@ -18,10 +18,10 @@ org.apache.nifi nifi-commons - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-utils - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT jar - - 4.0.0 - - - org.apache.nifi - nifi-aws-bundle - 0.1.0-incubating-SNAPSHOT - - - nifi-aws-nar - nar - - - - org.apache.nifi - nifi-aws-processors - 0.1.0-incubating-SNAPSHOT - - - - + + + + 4.0.0 + + + org.apache.nifi + nifi-aws-bundle + 0.1.1-incubating-SNAPSHOT + + + nifi-aws-nar + nar + + + + org.apache.nifi + nifi-aws-processors + 0.1.1-incubating-SNAPSHOT + + + + diff --git a/nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/pom.xml b/nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/pom.xml index fdc8718533..6c0d6db72d 100644 --- a/nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/pom.xml @@ -1,71 +1,71 @@ - - - - 4.0.0 - - - org.apache.nifi - nifi-aws-bundle - 0.1.0-incubating-SNAPSHOT - - - nifi-aws-processors - jar - - - - org.apache.nifi - nifi-api - - - org.apache.nifi - nifi-processor-utils - - - com.amazonaws - aws-java-sdk - - - - org.apache.nifi - nifi-mock - test - - - org.slf4j - slf4j-simple - test - - - junit - junit - test - - - - - - org.apache.rat - apache-rat-plugin - - - src/test/resources/hello.txt - - - - - - + + + + 4.0.0 + + + org.apache.nifi + nifi-aws-bundle + 0.1.1-incubating-SNAPSHOT + + + nifi-aws-processors + jar + + + + org.apache.nifi + nifi-api + + + org.apache.nifi + nifi-processor-utils + + + com.amazonaws + aws-java-sdk + + + + org.apache.nifi + nifi-mock + test + + + org.slf4j + slf4j-simple + test + + + junit + junit + test + + + + + + org.apache.rat + apache-rat-plugin + + + src/test/resources/hello.txt + + + + + + diff --git a/nifi/nifi-nar-bundles/nifi-aws-bundle/pom.xml b/nifi/nifi-nar-bundles/nifi-aws-bundle/pom.xml index 44353278d3..937ceca7e6 100644 --- a/nifi/nifi-nar-bundles/nifi-aws-bundle/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-aws-bundle/pom.xml @@ -1,43 +1,43 @@ - - - - 4.0.0 - - - org.apache.nifi - nifi-nar-bundles - 0.1.0-incubating-SNAPSHOT - - - nifi-aws-bundle - pom - - - nifi-aws-processors - nifi-aws-nar - - - - - - com.amazonaws - aws-java-sdk - 1.9.24 - - - - - + + + + 4.0.0 + + + org.apache.nifi + nifi-nar-bundles + 0.1.1-incubating-SNAPSHOT + + + nifi-aws-bundle + pom + + + nifi-aws-processors + nifi-aws-nar + + + + + + com.amazonaws + aws-java-sdk + 1.9.24 + + + + + diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework-nar/pom.xml b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework-nar/pom.xml index d3b231faef..6938b03c62 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework-nar/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework-nar/pom.xml @@ -17,7 +17,7 @@ org.apache.nifi nifi-framework-bundle - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-framework-nar nar diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/pom.xml b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/pom.xml index f474aab604..4230fae27c 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-administration/pom.xml @@ -18,7 +18,7 @@ org.apache.nifi nifi-framework - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-administration diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/pom.xml b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/pom.xml index 54997956b9..2eec0c30cb 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/pom.xml @@ -18,7 +18,7 @@ org.apache.nifi nifi-framework - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-client-dto diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/pom.xml b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/pom.xml index 1dad019097..e35aad66fc 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-cluster-authorization-provider/pom.xml @@ -18,7 +18,7 @@ org.apache.nifi nifi-framework - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-cluster-authorization-provider diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/pom.xml b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/pom.xml index 5995f5c327..8ae18e77b8 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/pom.xml @@ -1,41 +1,39 @@ - - - - 4.0.0 - - org.apache.nifi - nifi-framework - 0.1.0-incubating-SNAPSHOT - - nifi-documentation - - - org.apache.nifi - nifi-nar-utils - - - org.apache.nifi - nifi-api - - - org.apache.nifi - nifi-properties - - - org.apache.nifi - nifi-processor-utils - test - - - + + + + 4.0.0 + + org.apache.nifi + nifi-framework + 0.1.1-incubating-SNAPSHOT + + nifi-documentation + + + org.apache.nifi + nifi-nar-utils + + + org.apache.nifi + nifi-api + + + org.apache.nifi + nifi-properties + + + org.apache.nifi + nifi-processor-utils + test + + + diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-file-authorization-provider/pom.xml b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-file-authorization-provider/pom.xml index b5cde8d692..1dcd49fa6a 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-file-authorization-provider/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-file-authorization-provider/pom.xml @@ -18,7 +18,7 @@ org.apache.nifi nifi-framework - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-file-authorization-provider diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/pom.xml b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/pom.xml index 064c7fb176..6a08ba560d 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-protocol/pom.xml @@ -18,7 +18,7 @@ org.apache.nifi nifi-framework - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-framework-cluster-protocol jar diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-web/pom.xml b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-web/pom.xml index 70dcc8120d..acef1bab51 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-web/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster-web/pom.xml @@ -18,7 +18,7 @@ org.apache.nifi nifi-framework - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-framework-cluster-web jar diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/pom.xml b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/pom.xml index bdff00fcf0..d2d9e7f3fb 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/pom.xml @@ -18,7 +18,7 @@ org.apache.nifi nifi-framework - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-framework-cluster jar diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/pom.xml b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/pom.xml index 63c07c00bd..5f3659821a 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/pom.xml @@ -18,7 +18,7 @@ org.apache.nifi nifi-framework - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-framework-core-api diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/pom.xml b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/pom.xml index 25c396fd75..a9cbc67895 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/pom.xml @@ -18,7 +18,7 @@ org.apache.nifi nifi-framework - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-framework-core jar diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/pom.xml b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/pom.xml index c4a12557d1..05bb8d4d16 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-nar-utils/pom.xml @@ -17,7 +17,7 @@ org.apache.nifi nifi-framework - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-nar-utils jar diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/pom.xml b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/pom.xml index f9e70fbd60..c2c98f3b31 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-resources/pom.xml @@ -18,7 +18,7 @@ org.apache.nifi nifi-framework - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-resources pom diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-runtime/pom.xml b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-runtime/pom.xml index 0406ed6286..04fe1be387 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-runtime/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-runtime/pom.xml @@ -17,7 +17,7 @@ org.apache.nifi nifi-framework - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-runtime jar diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-security/pom.xml b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-security/pom.xml index 0fa7c0da31..b40bdcb595 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-security/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-security/pom.xml @@ -17,7 +17,7 @@ org.apache.nifi nifi-framework - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-security Contains security functionality common to NiFi. diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/pom.xml b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/pom.xml index 173e2cf256..90f467b52a 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-site-to-site/pom.xml @@ -18,7 +18,7 @@ org.apache.nifi nifi-framework - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-site-to-site diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-user-actions/pom.xml b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-user-actions/pom.xml index 8771ab970b..3818ace14b 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-user-actions/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-user-actions/pom.xml @@ -18,7 +18,7 @@ org.apache.nifi nifi-framework - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-user-actions diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-custom-ui-utilities/pom.xml b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-custom-ui-utilities/pom.xml index 75aa4ffa20..088ae44582 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-custom-ui-utilities/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-custom-ui-utilities/pom.xml @@ -18,7 +18,7 @@ org.apache.nifi nifi-web - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-custom-ui-utilities diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-jetty/pom.xml b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-jetty/pom.xml index 4db963753e..cab6c46007 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-jetty/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-jetty/pom.xml @@ -18,7 +18,7 @@ org.apache.nifi nifi-web - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-jetty jar diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-ui-extension/pom.xml b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-ui-extension/pom.xml index 3281df7aea..87008eba98 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-ui-extension/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-ui-extension/pom.xml @@ -18,7 +18,7 @@ org.apache.nifi nifi-web - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-ui-extension jar diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/pom.xml b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/pom.xml index 20afb6177b..0bffa4912f 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/pom.xml @@ -18,7 +18,7 @@ org.apache.nifi nifi-web - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-web-api diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-access/pom.xml b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-access/pom.xml index c5c12d3ba3..7eddaa964b 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-access/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-access/pom.xml @@ -18,7 +18,7 @@ org.apache.nifi nifi-web - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-web-content-access diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/pom.xml b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/pom.xml index da64d4f42a..34823240f3 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-content-viewer/pom.xml @@ -17,7 +17,7 @@ org.apache.nifi nifi-web - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-web-content-viewer diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/pom.xml b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/pom.xml index 2aadb03c4c..3c54fbeb11 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-docs/pom.xml @@ -17,7 +17,7 @@ org.apache.nifi nifi-web - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-web-docs diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-error/pom.xml b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-error/pom.xml index d404ba1fcd..002fb633e0 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-error/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-error/pom.xml @@ -17,7 +17,7 @@ org.apache.nifi nifi-web - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-web-error diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/pom.xml b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/pom.xml index a9f0c3e2fc..65b9a6e15a 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-optimistic-locking/pom.xml @@ -18,7 +18,7 @@ org.apache.nifi nifi-web - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-web-optimistic-locking diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/pom.xml b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/pom.xml index e14cf655d2..2cd83a5894 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-security/pom.xml @@ -18,7 +18,7 @@ org.apache.nifi nifi-web - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-web-security diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/pom.xml b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/pom.xml index d3af86e976..ecbae339f6 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/pom.xml @@ -18,7 +18,7 @@ org.apache.nifi nifi-web - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-web-ui war diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/pom.xml b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/pom.xml index d9098f356d..b903a847fb 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/pom.xml @@ -17,7 +17,7 @@ org.apache.nifi nifi-framework - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-web pom @@ -40,31 +40,31 @@ org.apache.nifi nifi-web-api war - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-web-error war - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-web-docs war - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-web-content-viewer war - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-web-ui war - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/pom.xml b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/pom.xml index c0b4ab9af0..b59a51fadc 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/pom.xml @@ -18,7 +18,7 @@ org.apache.nifi nifi-framework-bundle - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-framework pom diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/pom.xml b/nifi/nifi-nar-bundles/nifi-framework-bundle/pom.xml index 28fb24c837..31876d7fb6 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/pom.xml @@ -17,7 +17,7 @@ org.apache.nifi nifi-nar-bundles - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-framework-bundle pom @@ -31,92 +31,92 @@ org.apache.nifi nifi-framework-cluster-protocol - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-framework-cluster-web - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-file-authorization-provider - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-cluster-authorization-provider - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-framework-cluster - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-runtime - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-client-dto - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-web-content-access - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-security - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-framework-core-api - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-site-to-site - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-framework-core - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-user-actions - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-administration - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-jetty - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-web-optimistic-locking - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-web-security - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-documentation - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT diff --git a/nifi/nifi-nar-bundles/nifi-geo-bundle/nifi-geo-nar/pom.xml b/nifi/nifi-nar-bundles/nifi-geo-bundle/nifi-geo-nar/pom.xml index 484e291369..96bd599261 100644 --- a/nifi/nifi-nar-bundles/nifi-geo-bundle/nifi-geo-nar/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-geo-bundle/nifi-geo-nar/pom.xml @@ -18,7 +18,7 @@ org.apache.nifi nifi-geo-bundle - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-geo-nar nar diff --git a/nifi/nifi-nar-bundles/nifi-geo-bundle/nifi-geo-processors/pom.xml b/nifi/nifi-nar-bundles/nifi-geo-bundle/nifi-geo-processors/pom.xml index 67bc253a67..518c93be81 100644 --- a/nifi/nifi-nar-bundles/nifi-geo-bundle/nifi-geo-processors/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-geo-bundle/nifi-geo-processors/pom.xml @@ -18,7 +18,7 @@ org.apache.nifi nifi-geo-bundle - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-geo-processors diff --git a/nifi/nifi-nar-bundles/nifi-geo-bundle/pom.xml b/nifi/nifi-nar-bundles/nifi-geo-bundle/pom.xml index 2dbd32fe91..921774adc3 100644 --- a/nifi/nifi-nar-bundles/nifi-geo-bundle/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-geo-bundle/pom.xml @@ -18,7 +18,7 @@ org.apache.nifi nifi-nar-bundles - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-geo-bundle @@ -35,7 +35,7 @@ org.apache.nifi nifi-geo-processors - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT diff --git a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hadoop-nar/pom.xml b/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hadoop-nar/pom.xml index ca246b343d..61f5b076ab 100644 --- a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hadoop-nar/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hadoop-nar/pom.xml @@ -17,7 +17,7 @@ org.apache.nifi nifi-hadoop-bundle - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-hadoop-nar nar diff --git a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/pom.xml b/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/pom.xml index ede32abd16..2694775b3d 100644 --- a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/pom.xml @@ -17,7 +17,7 @@ org.apache.nifi nifi-hadoop-bundle - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-hdfs-processors jar diff --git a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/AbstractHadoopProcessor.java b/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/AbstractHadoopProcessor.java index 355950f4ee..548d34cdb3 100644 --- a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/AbstractHadoopProcessor.java +++ b/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/AbstractHadoopProcessor.java @@ -42,6 +42,13 @@ import org.apache.commons.io.IOUtils; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; +import org.apache.hadoop.io.compress.BZip2Codec; +import org.apache.hadoop.io.compress.CompressionCodec; +import org.apache.hadoop.io.compress.CompressionCodecFactory; +import org.apache.hadoop.io.compress.DefaultCodec; +import org.apache.hadoop.io.compress.GzipCodec; +import org.apache.hadoop.io.compress.Lz4Codec; +import org.apache.hadoop.io.compress.SnappyCodec; import org.apache.hadoop.net.NetUtils; /** @@ -60,6 +67,13 @@ public abstract class AbstractHadoopProcessor extends AbstractProcessor { public static final String DIRECTORY_PROP_NAME = "Directory"; + public static final PropertyDescriptor COMPRESSION_CODEC = new PropertyDescriptor.Builder() + .name("Compression codec") + .required(false) + .allowableValues(BZip2Codec.class.getName(), DefaultCodec.class.getName(), + GzipCodec.class.getName(), Lz4Codec.class.getName(), SnappyCodec.class.getName()) + .build(); + protected static final List properties; static { @@ -228,6 +242,23 @@ public abstract class AbstractHadoopProcessor extends AbstractProcessor { }; } + /** + * Returns the configured CompressionCodec, or null if none is configured. + * + * @param context the ProcessContext + * @param configuration the Hadoop Configuration + * @return CompressionCodec or null + */ + protected CompressionCodec getCompressionCodec(ProcessContext context, Configuration configuration) { + CompressionCodec codec = null; + if (context.getProperty(COMPRESSION_CODEC).isSet()) { + String compressionClassname = context.getProperty(COMPRESSION_CODEC).getValue(); + CompressionCodecFactory ccf = new CompressionCodecFactory(configuration); + codec = ccf.getCodecByClassName(compressionClassname); + } + + return codec; + } /** * Returns the relative path of the child that does not include the filename diff --git a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/GetHDFS.java b/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/GetHDFS.java index 7aa534fe49..cac61b0100 100644 --- a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/GetHDFS.java +++ b/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/GetHDFS.java @@ -17,6 +17,7 @@ package org.apache.nifi.processors.hadoop; import java.io.IOException; +import java.io.InputStream; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -33,11 +34,11 @@ import java.util.regex.Pattern; import org.apache.commons.io.IOUtils; import org.apache.hadoop.conf.Configuration; -import org.apache.hadoop.fs.FSDataInputStream; import org.apache.hadoop.fs.FileStatus; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.hadoop.fs.PathFilter; +import org.apache.hadoop.io.compress.CompressionCodec; import org.apache.nifi.annotation.behavior.TriggerWhenEmpty; import org.apache.nifi.annotation.documentation.CapabilityDescription; import org.apache.nifi.annotation.documentation.SeeAlso; @@ -192,6 +193,7 @@ public class GetHDFS extends AbstractHadoopProcessor { props.add(POLLING_INTERVAL); props.add(BATCH_SIZE); props.add(BUFFER_SIZE); + props.add(COMPRESSION_CODEC); localProperties = Collections.unmodifiableList(props); } @@ -329,7 +331,7 @@ public class GetHDFS extends AbstractHadoopProcessor { protected void processBatchOfFiles(final List files, final ProcessContext context, final ProcessSession session) { // process the batch of files - FSDataInputStream stream = null; + InputStream stream = null; Configuration conf = getConfiguration(); FileSystem hdfs = getFileSystem(); final boolean keepSourceFiles = context.getProperty(KEEP_SOURCE_FILE).asBoolean(); @@ -337,6 +339,7 @@ public class GetHDFS extends AbstractHadoopProcessor { int bufferSize = bufferSizeProp != null ? bufferSizeProp.intValue() : conf.getInt(BUFFER_SIZE_KEY, BUFFER_SIZE_DEFAULT); final Path rootDir = new Path(context.getProperty(DIRECTORY).getValue()); + final CompressionCodec codec = getCompressionCodec(context, conf); for (final Path file : files) { try { if (!hdfs.exists(file)) { @@ -346,6 +349,9 @@ public class GetHDFS extends AbstractHadoopProcessor { final String relativePath = getPathDifference(rootDir, file); stream = hdfs.open(file, bufferSize); + if (codec != null) { + stream = codec.createInputStream(stream); + } FlowFile flowFile = session.create(); final StopWatch stopWatch = new StopWatch(true); diff --git a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/PutHDFS.java b/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/PutHDFS.java index 52cf475da1..419b1debd1 100644 --- a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/PutHDFS.java +++ b/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/PutHDFS.java @@ -19,6 +19,7 @@ package org.apache.nifi.processors.hadoop; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; +import java.io.OutputStream; import java.util.ArrayList; import java.util.Collections; import java.util.HashSet; @@ -27,10 +28,10 @@ import java.util.Set; import java.util.concurrent.TimeUnit; import org.apache.hadoop.conf.Configuration; -import org.apache.hadoop.fs.FSDataOutputStream; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.hadoop.fs.permission.FsPermission; +import org.apache.hadoop.io.compress.CompressionCodec; import org.apache.hadoop.ipc.RemoteException; import org.apache.nifi.annotation.behavior.WritesAttribute; import org.apache.nifi.annotation.documentation.CapabilityDescription; @@ -157,6 +158,7 @@ public class PutHDFS extends AbstractHadoopProcessor { props.add(UMASK); props.add(REMOTE_OWNER); props.add(REMOTE_GROUP); + props.add(COMPRESSION_CODEC); localProperties = Collections.unmodifiableList(props); } @@ -215,6 +217,8 @@ public class PutHDFS extends AbstractHadoopProcessor { final short replication = replicationProp != null ? replicationProp.shortValue() : hdfs .getDefaultReplication(configuredRootDirPath); + final CompressionCodec codec = getCompressionCodec(context, configuration); + Path tempDotCopyFile = null; try { final Path tempCopyFile; @@ -266,10 +270,13 @@ public class PutHDFS extends AbstractHadoopProcessor { @Override public void process(InputStream in) throws IOException { - FSDataOutputStream fos = null; + OutputStream fos = null; Path createdFile = null; try { fos = hdfs.create(tempCopyFile, true, bufferSize, replication, blockSize); + if (codec != null) { + fos = codec.createOutputStream(fos); + } createdFile = tempCopyFile; BufferedInputStream bis = new BufferedInputStream(in); StreamUtils.copy(bis, fos); diff --git a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/java/org/apache/nifi/processors/hadoop/GetHDFSTest.java b/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/java/org/apache/nifi/processors/hadoop/GetHDFSTest.java index d6015e0d15..b0dd17fdb4 100644 --- a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/java/org/apache/nifi/processors/hadoop/GetHDFSTest.java +++ b/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/java/org/apache/nifi/processors/hadoop/GetHDFSTest.java @@ -19,6 +19,8 @@ package org.apache.nifi.processors.hadoop; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; +import java.io.IOException; +import java.io.InputStream; import java.util.Collection; import java.util.HashSet; import java.util.List; @@ -30,8 +32,9 @@ import org.apache.nifi.util.MockFlowFile; import org.apache.nifi.util.MockProcessContext; import org.apache.nifi.util.TestRunner; import org.apache.nifi.util.TestRunners; - import org.apache.hadoop.fs.Path; +import org.apache.hadoop.io.compress.CompressionCodec; +import org.apache.hadoop.io.compress.GzipCodec; import org.junit.Assert; import org.junit.Test; @@ -105,6 +108,19 @@ public class GetHDFSTest { for (ValidationResult vr : results) { Assert.assertTrue(vr.toString().contains("is invalid because Minimum File Age cannot be greater than Maximum File Age")); } + + results = new HashSet<>(); + runner.setProperty(GetHDFS.DIRECTORY, "/target"); + runner.setProperty(GetHDFS.COMPRESSION_CODEC, CompressionCodec.class.getName()); + runner.enqueue(new byte[0]); + pc = runner.getProcessContext(); + if (pc instanceof MockProcessContext) { + results = ((MockProcessContext) pc).validate(); + } + Assert.assertEquals(1, results.size()); + for (ValidationResult vr : results) { + Assert.assertTrue(vr.toString().contains("is invalid because Given value not found in allowed set")); + } } @Test @@ -115,9 +131,25 @@ public class GetHDFSTest { runner.setProperty(GetHDFS.KEEP_SOURCE_FILE, "true"); runner.run(); List flowFiles = runner.getFlowFilesForRelationship(GetHDFS.REL_SUCCESS); - assertEquals(3, flowFiles.size()); + assertEquals(4, flowFiles.size()); for (MockFlowFile flowFile : flowFiles) { assertTrue(flowFile.getAttribute(CoreAttributes.FILENAME.key()).startsWith("random")); } } + + @Test + public void testGetFilesWithCompression() throws IOException { + TestRunner runner = TestRunners.newTestRunner(GetHDFS.class); + runner.setProperty(PutHDFS.DIRECTORY, "src/test/resources/testdata"); + runner.setProperty(GetHDFS.FILE_FILTER_REGEX, "random.*.gz"); + runner.setProperty(GetHDFS.COMPRESSION_CODEC, GzipCodec.class.getName()); + runner.setProperty(GetHDFS.KEEP_SOURCE_FILE, "true"); + runner.run(); + List flowFiles = runner.getFlowFilesForRelationship(GetHDFS.REL_SUCCESS); + assertEquals(1, flowFiles.size()); + MockFlowFile flowFile = flowFiles.get(0); + assertTrue(flowFile.getAttribute(CoreAttributes.FILENAME.key()).startsWith("randombytes-1.gz")); + InputStream expected = getClass().getResourceAsStream("/testdata/randombytes-1"); + flowFile.assertContentEquals(expected); + } } diff --git a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/java/org/apache/nifi/processors/hadoop/PutHDFSTest.java b/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/java/org/apache/nifi/processors/hadoop/PutHDFSTest.java index df386d7d55..0b5fee8539 100644 --- a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/java/org/apache/nifi/processors/hadoop/PutHDFSTest.java +++ b/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/java/org/apache/nifi/processors/hadoop/PutHDFSTest.java @@ -17,6 +17,7 @@ package org.apache.nifi.processors.hadoop; import org.apache.nifi.processors.hadoop.PutHDFS; + import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; @@ -33,10 +34,10 @@ import org.apache.nifi.processor.ProcessContext; import org.apache.nifi.util.MockProcessContext; import org.apache.nifi.util.TestRunner; import org.apache.nifi.util.TestRunners; - import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; +import org.apache.hadoop.io.compress.CompressionCodec; import org.junit.Assert; import org.junit.Ignore; import org.junit.Test; @@ -136,6 +137,20 @@ public class PutHDFSTest { for (ValidationResult vr : results) { assertTrue(vr.toString().contains("is invalid because octal umask [2000] is not a valid umask")); } + + results = new HashSet<>(); + runner = TestRunners.newTestRunner(PutHDFS.class); + runner.setProperty(PutHDFS.DIRECTORY, "/target"); + runner.setProperty(PutHDFS.COMPRESSION_CODEC, CompressionCodec.class.getName()); + runner.enqueue(new byte[0]); + pc = runner.getProcessContext(); + if (pc instanceof MockProcessContext) { + results = ((MockProcessContext) pc).validate(); + } + Assert.assertEquals(1, results.size()); + for (ValidationResult vr : results) { + Assert.assertTrue(vr.toString().contains("is invalid because Given value not found in allowed set")); + } } // The following only seems to work from cygwin...something about not finding the 'chmod' command. diff --git a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/resources/testdata/randombytes-1.gz b/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/resources/testdata/randombytes-1.gz new file mode 100755 index 0000000000..df844f2fdb Binary files /dev/null and b/nifi/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/test/resources/testdata/randombytes-1.gz differ diff --git a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/pom.xml b/nifi/nifi-nar-bundles/nifi-hadoop-bundle/pom.xml index 41edf615d5..68ff3942f3 100644 --- a/nifi/nifi-nar-bundles/nifi-hadoop-bundle/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-hadoop-bundle/pom.xml @@ -17,7 +17,7 @@ org.apache.nifi nifi-nar-bundles - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-hadoop-bundle pom @@ -31,7 +31,7 @@ org.apache.nifi nifi-hdfs-processors - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT diff --git a/nifi/nifi-nar-bundles/nifi-hadoop-libraries-bundle/nifi-hadoop-libraries-nar/pom.xml b/nifi/nifi-nar-bundles/nifi-hadoop-libraries-bundle/nifi-hadoop-libraries-nar/pom.xml index 24c610118d..554396d77d 100644 --- a/nifi/nifi-nar-bundles/nifi-hadoop-libraries-bundle/nifi-hadoop-libraries-nar/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-hadoop-libraries-bundle/nifi-hadoop-libraries-nar/pom.xml @@ -13,7 +13,7 @@ org.apache.nifi nifi-hadoop-libraries-bundle - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-hadoop-libraries-nar nar diff --git a/nifi/nifi-nar-bundles/nifi-hadoop-libraries-bundle/pom.xml b/nifi/nifi-nar-bundles/nifi-hadoop-libraries-bundle/pom.xml index 4e25beefc9..b481e482e2 100644 --- a/nifi/nifi-nar-bundles/nifi-hadoop-libraries-bundle/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-hadoop-libraries-bundle/pom.xml @@ -17,7 +17,7 @@ org.apache.nifi nifi-nar-bundles - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-hadoop-libraries-bundle diff --git a/nifi/nifi-nar-bundles/nifi-hl7-bundle/nifi-hl7-nar/pom.xml b/nifi/nifi-nar-bundles/nifi-hl7-bundle/nifi-hl7-nar/pom.xml index 391206e25a..ab43cf4552 100644 --- a/nifi/nifi-nar-bundles/nifi-hl7-bundle/nifi-hl7-nar/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-hl7-bundle/nifi-hl7-nar/pom.xml @@ -19,7 +19,7 @@ org.apache.nifi nifi-hl7-bundle - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-hl7-nar @@ -29,7 +29,7 @@ org.apache.nifi nifi-hl7-processors - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT diff --git a/nifi/nifi-nar-bundles/nifi-hl7-bundle/nifi-hl7-processors/pom.xml b/nifi/nifi-nar-bundles/nifi-hl7-bundle/nifi-hl7-processors/pom.xml index f266835d4d..8d215101a7 100644 --- a/nifi/nifi-nar-bundles/nifi-hl7-bundle/nifi-hl7-processors/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-hl7-bundle/nifi-hl7-processors/pom.xml @@ -19,7 +19,7 @@ org.apache.nifi nifi-hl7-bundle - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-hl7-processors @@ -52,7 +52,7 @@ org.apache.nifi nifi-hl7-query-language - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT diff --git a/nifi/nifi-nar-bundles/nifi-hl7-bundle/pom.xml b/nifi/nifi-nar-bundles/nifi-hl7-bundle/pom.xml index 3f9fbce211..efd6d76cbf 100644 --- a/nifi/nifi-nar-bundles/nifi-hl7-bundle/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-hl7-bundle/pom.xml @@ -19,7 +19,7 @@ org.apache.nifi nifi-nar-bundles - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-hl7-bundle diff --git a/nifi/nifi-nar-bundles/nifi-jetty-bundle/pom.xml b/nifi/nifi-nar-bundles/nifi-jetty-bundle/pom.xml index 141e856b3d..536dca24a2 100644 --- a/nifi/nifi-nar-bundles/nifi-jetty-bundle/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-jetty-bundle/pom.xml @@ -17,7 +17,7 @@ org.apache.nifi nifi-nar-bundles - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-jetty-bundle nar diff --git a/nifi/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-nar/pom.xml b/nifi/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-nar/pom.xml index ac6b110309..ffc87d632f 100644 --- a/nifi/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-nar/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-nar/pom.xml @@ -17,7 +17,7 @@ org.apache.nifi nifi-kafka-bundle - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-kafka-nar nar diff --git a/nifi/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-processors/pom.xml b/nifi/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-processors/pom.xml index d598a51478..7dfe72003e 100644 --- a/nifi/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-processors/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-kafka-bundle/nifi-kafka-processors/pom.xml @@ -16,7 +16,7 @@ org.apache.nifi nifi-kafka-bundle - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT 4.0.0 nifi-kafka-processors diff --git a/nifi/nifi-nar-bundles/nifi-kafka-bundle/pom.xml b/nifi/nifi-nar-bundles/nifi-kafka-bundle/pom.xml index 74fef7037a..971dde096b 100644 --- a/nifi/nifi-nar-bundles/nifi-kafka-bundle/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-kafka-bundle/pom.xml @@ -17,7 +17,7 @@ org.apache.nifi nifi-nar-bundles - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-kafka-bundle pom @@ -30,7 +30,7 @@ org.apache.nifi nifi-kafka-processors - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT diff --git a/nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-nar/pom.xml b/nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-nar/pom.xml index 66d837c702..c0fa0f4cb2 100644 --- a/nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-nar/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-nar/pom.xml @@ -18,7 +18,7 @@ org.apache.nifi nifi-kite-bundle - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-kite-nar diff --git a/nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/pom.xml b/nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/pom.xml index 938854d3a1..fc6e92dd6c 100644 --- a/nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-kite-bundle/nifi-kite-processors/pom.xml @@ -18,7 +18,7 @@ org.apache.nifi nifi-kite-bundle - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-kite-processors diff --git a/nifi/nifi-nar-bundles/nifi-kite-bundle/pom.xml b/nifi/nifi-nar-bundles/nifi-kite-bundle/pom.xml index 21e378d7a3..fe44705e01 100644 --- a/nifi/nifi-nar-bundles/nifi-kite-bundle/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-kite-bundle/pom.xml @@ -18,7 +18,7 @@ org.apache.nifi nifi-nar-bundles - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-kite-bundle @@ -36,7 +36,7 @@ org.apache.nifi nifi-kite-processors - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT diff --git a/nifi/nifi-nar-bundles/nifi-language-translation-bundle/nifi-language-translation-nar/pom.xml b/nifi/nifi-nar-bundles/nifi-language-translation-bundle/nifi-language-translation-nar/pom.xml index 4d8b790a9c..f9aee3ea03 100644 --- a/nifi/nifi-nar-bundles/nifi-language-translation-bundle/nifi-language-translation-nar/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-language-translation-bundle/nifi-language-translation-nar/pom.xml @@ -19,7 +19,7 @@ org.apache.nifi nifi-language-translation-bundle - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-language-translation-nar @@ -29,7 +29,7 @@ org.apache.nifi nifi-yandex-processors - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT diff --git a/nifi/nifi-nar-bundles/nifi-language-translation-bundle/nifi-yandex-processors/pom.xml b/nifi/nifi-nar-bundles/nifi-language-translation-bundle/nifi-yandex-processors/pom.xml index 03776cae0d..e485d9d6ee 100644 --- a/nifi/nifi-nar-bundles/nifi-language-translation-bundle/nifi-yandex-processors/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-language-translation-bundle/nifi-yandex-processors/pom.xml @@ -19,7 +19,7 @@ org.apache.nifi nifi-language-translation-bundle - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-yandex-processors diff --git a/nifi/nifi-nar-bundles/nifi-language-translation-bundle/pom.xml b/nifi/nifi-nar-bundles/nifi-language-translation-bundle/pom.xml index 830da21b99..00b63176e6 100644 --- a/nifi/nifi-nar-bundles/nifi-language-translation-bundle/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-language-translation-bundle/pom.xml @@ -19,7 +19,7 @@ org.apache.nifi nifi-nar-bundles - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-language-translation-bundle diff --git a/nifi/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-nar/pom.xml b/nifi/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-nar/pom.xml new file mode 100644 index 0000000000..a138f1886f --- /dev/null +++ b/nifi/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-nar/pom.xml @@ -0,0 +1,37 @@ + + + + 4.0.0 + + + org.apache.nifi + nifi-mongodb-bundle + 0.1.1-incubating-SNAPSHOT + + + nifi-mongodb-nar + 0.1.1-incubating-SNAPSHOT + nar + + + + org.apache.nifi + nifi-mongodb-processors + 0.1.1-incubating-SNAPSHOT + + + + diff --git a/nifi/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/pom.xml b/nifi/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/pom.xml new file mode 100644 index 0000000000..381d7d6358 --- /dev/null +++ b/nifi/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/pom.xml @@ -0,0 +1,98 @@ + + + + 4.0.0 + + + org.apache.nifi + nifi-mongodb-bundle + 0.1.1-incubating-SNAPSHOT + + + nifi-mongodb-processors + jar + + + + org.mongodb + mongo-java-driver + 3.0.1 + + + org.apache.nifi + nifi-api + + + org.apache.nifi + nifi-processor-utils + + + commons-io + commons-io + + + org.apache.nifi + nifi-mock + test + + + org.slf4j + slf4j-simple + test + + + junit + junit + test + + + com.google.guava + guava + test + + + + + + + com.github.joelittlejohn.embedmongo + embedmongo-maven-plugin + 0.1.12 + + + start + + start + + test-compile + + ${project.build.directory}/embedmongo/db + file + ${project.build.directory}/embedmongo.log + + + + stop + + stop + + prepare-package + + + + + + diff --git a/nifi/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/AbstractMongoProcessor.java b/nifi/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/AbstractMongoProcessor.java new file mode 100644 index 0000000000..fae007f152 --- /dev/null +++ b/nifi/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/AbstractMongoProcessor.java @@ -0,0 +1,93 @@ +/* + * 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.mongodb; + +import java.io.IOException; + +import org.apache.nifi.annotation.lifecycle.OnScheduled; +import org.apache.nifi.annotation.lifecycle.OnStopped; +import org.apache.nifi.components.PropertyDescriptor; +import org.apache.nifi.processor.AbstractProcessor; +import org.apache.nifi.processor.ProcessContext; +import org.apache.nifi.processor.util.StandardValidators; +import org.bson.Document; + +import com.mongodb.MongoClient; +import com.mongodb.MongoClientURI; +import com.mongodb.client.MongoCollection; +import com.mongodb.client.MongoDatabase; + +public abstract class AbstractMongoProcessor extends AbstractProcessor { + protected static final PropertyDescriptor URI = new PropertyDescriptor.Builder() + .name("Mongo URI") + .description("MongoURI, typically of the form: mongodb://host1[:port1][,host2[:port2],...]") + .required(true) + .addValidator(StandardValidators.NON_EMPTY_VALIDATOR) + .build(); + protected static final PropertyDescriptor DATABASE_NAME = new PropertyDescriptor.Builder() + .name("Mongo Database Name") + .description("The name of the database to use") + .required(true) + .addValidator(StandardValidators.NON_EMPTY_VALIDATOR) + .build(); + protected static final PropertyDescriptor COLLECTION_NAME = new PropertyDescriptor.Builder() + .name("Mongo Collection Name") + .description("The name of the collection to use") + .required(true) + .addValidator(StandardValidators.NON_EMPTY_VALIDATOR) + .build(); + + protected MongoClient mongoClient; + + @OnScheduled + public final void createClient(ProcessContext context) throws IOException { + if (mongoClient != null) { + closeClient(); + } + + getLogger().info("Creating MongoClient"); + + try { + final String uri = context.getProperty(URI).getValue(); + mongoClient = new MongoClient(new MongoClientURI(uri)); + } catch (Exception e) { + getLogger().error("Failed to schedule PutMongo due to {}", new Object[] { e }, e); + throw e; + } + } + + @OnStopped + public final void closeClient() { + if (mongoClient != null) { + getLogger().info("Closing MongoClient"); + mongoClient.close(); + mongoClient = null; + } + } + + protected MongoDatabase getDatabase(final ProcessContext context) { + final String databaseName = context.getProperty(DATABASE_NAME).getValue(); + return mongoClient.getDatabase(databaseName); + } + + protected MongoCollection getCollection(final ProcessContext context) { + final String collectionName = context.getProperty(COLLECTION_NAME).getValue(); + return getDatabase(context).getCollection(collectionName); + } +} diff --git a/nifi/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/GetMongo.java b/nifi/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/GetMongo.java new file mode 100644 index 0000000000..02ce9cfdd5 --- /dev/null +++ b/nifi/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/GetMongo.java @@ -0,0 +1,184 @@ +/* + * 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.mongodb; + +import java.io.IOException; +import java.io.OutputStream; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import org.apache.commons.io.IOUtils; +import org.apache.nifi.annotation.documentation.CapabilityDescription; +import org.apache.nifi.annotation.documentation.Tags; +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.logging.ProcessorLog; +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.io.OutputStreamCallback; +import org.apache.nifi.processor.util.StandardValidators; +import org.bson.Document; + +import com.mongodb.client.FindIterable; +import com.mongodb.client.MongoCollection; +import com.mongodb.client.MongoCursor; + +@Tags({ "mongodb", "read", "get" }) +@CapabilityDescription("Creates FlowFiles from documents in MongoDB") +public class GetMongo extends AbstractMongoProcessor { + public static final Validator DOCUMENT_VALIDATOR = new Validator() { + @Override + public ValidationResult validate(final String subject, final String value, final ValidationContext context) { + String reason = null; + try { + Document.parse(value); + } catch (final RuntimeException e) { + reason = e.getClass().getName(); + } + + return new ValidationResult.Builder().subject(subject).input(value).explanation(reason).valid(reason == null).build(); + } + }; + + static final Relationship REL_SUCCESS = new Relationship.Builder().name("success").description("All files are routed to success").build(); + + static final PropertyDescriptor QUERY = new PropertyDescriptor.Builder() + .name("Query") + .description("The selection criteria; must be a valid BSON document; if omitted the entire collection will be queried") + .required(false) + .addValidator(DOCUMENT_VALIDATOR) + .build(); + static final PropertyDescriptor PROJECTION = new PropertyDescriptor.Builder() + .name("Projection") + .description("The fields to be returned from the documents in the result set; must be a valid BSON document") + .required(false) + .addValidator(DOCUMENT_VALIDATOR) + .build(); + static final PropertyDescriptor SORT = new PropertyDescriptor.Builder() + .name("Sort") + .description("The fields by which to sort; must be a valid BSON document") + .required(false) + .addValidator(DOCUMENT_VALIDATOR) + .build(); + static final PropertyDescriptor LIMIT = new PropertyDescriptor.Builder() + .name("Limit") + .description("The maximum number of elements to return") + .required(false) + .addValidator(StandardValidators.POSITIVE_INTEGER_VALIDATOR) + .build(); + static final PropertyDescriptor BATCH_SIZE = new PropertyDescriptor.Builder() + .name("Batch Size") + .description("The number of elements returned from the server in one batch") + .required(false) + .addValidator(StandardValidators.POSITIVE_INTEGER_VALIDATOR) + .build(); + + private final List descriptors; + + private final Set relationships; + + public GetMongo() { + final List descriptors = new ArrayList<>(); + descriptors.add(URI); + descriptors.add(DATABASE_NAME); + descriptors.add(COLLECTION_NAME); + descriptors.add(QUERY); + descriptors.add(PROJECTION); + descriptors.add(SORT); + descriptors.add(LIMIT); + descriptors.add(BATCH_SIZE); + this.descriptors = Collections.unmodifiableList(descriptors); + + final Set relationships = new HashSet<>(); + relationships.add(REL_SUCCESS); + this.relationships = Collections.unmodifiableSet(relationships); + } + + @Override + public Set getRelationships() { + return this.relationships; + } + + @Override + public final List getSupportedPropertyDescriptors() { + return descriptors; + } + + @Override + public void onTrigger(final ProcessContext context, final ProcessSession session) throws ProcessException { + final ProcessorLog logger = getLogger(); + + final Document query = context.getProperty(QUERY).isSet() ? Document.parse(context.getProperty(QUERY).getValue()) : null; + final Document projection = context.getProperty(PROJECTION).isSet() ? Document.parse(context.getProperty(PROJECTION).getValue()) : null; + final Document sort = context.getProperty(SORT).isSet() ? Document.parse(context.getProperty(SORT).getValue()) : null; + + final MongoCollection collection = getCollection(context); + + try { + final FindIterable it = query != null ? collection.find(query) : collection.find(); + if (projection != null) { + it.projection(projection); + } + if (sort != null) { + it.sort(sort); + } + if (context.getProperty(LIMIT).isSet()) { + it.limit(context.getProperty(LIMIT).asInteger()); + } + if (context.getProperty(BATCH_SIZE).isSet()) { + it.batchSize(context.getProperty(BATCH_SIZE).asInteger()); + } + + final MongoCursor cursor = it.iterator(); + try { + FlowFile flowFile = null; + while (cursor.hasNext()) { + flowFile = session.create(); + flowFile = session.write(flowFile, new OutputStreamCallback() { + @Override + public void process(OutputStream out) throws IOException { + IOUtils.write(cursor.next().toJson(), out); + } + }); + + session.getProvenanceReporter().receive(flowFile, context.getProperty(URI).getValue()); + session.transfer(flowFile, REL_SUCCESS); + } + + session.commit(); + + } finally { + cursor.close(); + } + + } catch (final RuntimeException e) { + context.yield(); + session.rollback(); + logger.error("Failed to execute query {} due to {}", new Object[] { query, e }, e); + } + } +} diff --git a/nifi/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/PutMongo.java b/nifi/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/PutMongo.java new file mode 100644 index 0000000000..4b56f68fa1 --- /dev/null +++ b/nifi/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/PutMongo.java @@ -0,0 +1,215 @@ +/* + * 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.mongodb; + +import java.io.IOException; +import java.io.InputStream; +import java.nio.charset.Charset; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import org.apache.nifi.annotation.behavior.EventDriven; +import org.apache.nifi.annotation.documentation.CapabilityDescription; +import org.apache.nifi.annotation.documentation.Tags; +import org.apache.nifi.components.PropertyDescriptor; +import org.apache.nifi.flowfile.FlowFile; +import org.apache.nifi.logging.ProcessorLog; +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.io.InputStreamCallback; +import org.apache.nifi.processor.util.StandardValidators; +import org.apache.nifi.stream.io.StreamUtils; +import org.bson.Document; + +import com.mongodb.WriteConcern; +import com.mongodb.client.MongoCollection; +import com.mongodb.client.model.UpdateOptions; + +@EventDriven +@Tags({ "mongodb", "insert", "update", "write", "put" }) +@CapabilityDescription("Writes the contents of a FlowFile to MongoDB") +public class PutMongo extends AbstractMongoProcessor { + static final Relationship REL_SUCCESS = new Relationship.Builder().name("success") + .description("All FlowFiles that are written to MongoDB are routed to this relationship").build(); + static final Relationship REL_FAILURE = new Relationship.Builder().name("failure") + .description("All FlowFiles that cannot be written to MongoDB are routed to this relationship").build(); + + static final String MODE_INSERT = "insert"; + static final String MODE_UPDATE = "update"; + + static final String WRITE_CONCERN_ACKNOWLEDGED = "ACKNOWLEDGED"; + static final String WRITE_CONCERN_UNACKNOWLEDGED = "UNACKNOWLEDGED"; + static final String WRITE_CONCERN_FSYNCED = "FSYNCED"; + static final String WRITE_CONCERN_JOURNALED = "JOURNALED"; + static final String WRITE_CONCERN_REPLICA_ACKNOWLEDGED = "REPLICA_ACKNOWLEDGED"; + static final String WRITE_CONCERN_MAJORITY = "MAJORITY"; + + static final PropertyDescriptor MODE = new PropertyDescriptor.Builder() + .name("Mode") + .description("Indicates whether the processor should insert or update content") + .required(true) + .allowableValues(MODE_INSERT, MODE_UPDATE) + .defaultValue(MODE_INSERT) + .build(); + static final PropertyDescriptor UPSERT = new PropertyDescriptor.Builder() + .name("Upsert") + .description("When true, inserts a document if no document matches the update query criteria; this property is valid only when using update mode, " + + "otherwise it is ignored") + .required(true) + .allowableValues("true", "false") + .addValidator(StandardValidators.BOOLEAN_VALIDATOR) + .defaultValue("false") + .build(); + static final PropertyDescriptor UPDATE_QUERY_KEY = new PropertyDescriptor.Builder() + .name("Update Query Key") + .description("Key name used to build the update query criteria; this property is valid only when using update mode, " + + "otherwise it is ignored") + .required(true) + .addValidator(StandardValidators.NON_EMPTY_VALIDATOR) + .defaultValue("_id") + .build(); + static final PropertyDescriptor WRITE_CONCERN = new PropertyDescriptor.Builder() + .name("Write Concern") + .description("The write concern to use") + .required(true) + .allowableValues(WRITE_CONCERN_ACKNOWLEDGED, WRITE_CONCERN_UNACKNOWLEDGED, WRITE_CONCERN_FSYNCED, WRITE_CONCERN_JOURNALED, + WRITE_CONCERN_REPLICA_ACKNOWLEDGED, WRITE_CONCERN_MAJORITY) + .defaultValue(WRITE_CONCERN_ACKNOWLEDGED) + .build(); + static final PropertyDescriptor CHARACTER_SET = new PropertyDescriptor.Builder() + .name("Character Set") + .description("The Character Set in which the data is encoded") + .required(true) + .addValidator(StandardValidators.CHARACTER_SET_VALIDATOR) + .defaultValue("UTF-8") + .build(); + + private final List descriptors; + + private final Set relationships; + + public PutMongo() { + final List descriptors = new ArrayList<>(); + descriptors.add(URI); + descriptors.add(DATABASE_NAME); + descriptors.add(COLLECTION_NAME); + descriptors.add(MODE); + descriptors.add(UPSERT); + descriptors.add(UPDATE_QUERY_KEY); + descriptors.add(WRITE_CONCERN); + descriptors.add(CHARACTER_SET); + this.descriptors = Collections.unmodifiableList(descriptors); + + final Set relationships = new HashSet<>(); + relationships.add(REL_SUCCESS); + relationships.add(REL_FAILURE); + this.relationships = Collections.unmodifiableSet(relationships); + } + + @Override + public Set getRelationships() { + return this.relationships; + } + + @Override + public final List getSupportedPropertyDescriptors() { + return descriptors; + } + + @Override + public void onTrigger(final ProcessContext context, final ProcessSession session) throws ProcessException { + final FlowFile flowFile = session.get(); + if (flowFile == null) { + return; + } + + final ProcessorLog logger = getLogger(); + + final Charset charset = Charset.forName(context.getProperty(CHARACTER_SET).getValue()); + final String mode = context.getProperty(MODE).getValue(); + final WriteConcern writeConcern = getWriteConcern(context); + + final MongoCollection collection = getCollection(context).withWriteConcern(writeConcern); + + try { + // Read the contents of the FlowFile into a byte array + final byte[] content = new byte[(int) flowFile.getSize()]; + session.read(flowFile, new InputStreamCallback() { + @Override + public void process(final InputStream in) throws IOException { + StreamUtils.fillBuffer(in, content, true); + } + }); + + // parse + final Document doc = Document.parse(new String(content, charset)); + + if (MODE_INSERT.equalsIgnoreCase(mode)) { + collection.insertOne(doc); + logger.info("inserted {} into MongoDB", new Object[] { flowFile }); + } else { + // update + final boolean upsert = context.getProperty(UPSERT).asBoolean(); + final String updateKey = context.getProperty(UPDATE_QUERY_KEY).getValue(); + final Document query = new Document(updateKey, doc.get(updateKey)); + + collection.replaceOne(query, doc, new UpdateOptions().upsert(upsert)); + logger.info("updated {} into MongoDB", new Object[] { flowFile }); + } + + session.getProvenanceReporter().send(flowFile, context.getProperty(URI).getValue()); + session.transfer(flowFile, REL_SUCCESS); + } catch (Exception e) { + logger.error("Failed to insert {} into MongoDB due to {}", new Object[] {flowFile, e}, e); + session.transfer(flowFile, REL_FAILURE); + context.yield(); + } + } + + protected WriteConcern getWriteConcern(final ProcessContext context) { + final String writeConcernProperty = context.getProperty(WRITE_CONCERN).getValue(); + WriteConcern writeConcern = null; + switch (writeConcernProperty) { + case WRITE_CONCERN_ACKNOWLEDGED: + writeConcern = WriteConcern.ACKNOWLEDGED; + break; + case WRITE_CONCERN_UNACKNOWLEDGED: + writeConcern = WriteConcern.UNACKNOWLEDGED; + break; + case WRITE_CONCERN_FSYNCED: + writeConcern = WriteConcern.FSYNCED; + break; + case WRITE_CONCERN_JOURNALED: + writeConcern = WriteConcern.JOURNALED; + break; + case WRITE_CONCERN_REPLICA_ACKNOWLEDGED: + writeConcern = WriteConcern.REPLICA_ACKNOWLEDGED; + break; + case WRITE_CONCERN_MAJORITY: + writeConcern = WriteConcern.MAJORITY; + break; + default: + writeConcern = WriteConcern.ACKNOWLEDGED; + } + return writeConcern; + } +} diff --git a/nifi/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor b/nifi/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/resources/META-INF/services/org.apache.nifi.processor.Processor new file mode 100644 index 0000000000..92e1cf71d2 --- /dev/null +++ b/nifi/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-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.mongodb.GetMongo +org.apache.nifi.processors.mongodb.PutMongo diff --git a/nifi/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/test/java/org/apache/nifi/processors/mongodb/GetMongoTest.java b/nifi/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/test/java/org/apache/nifi/processors/mongodb/GetMongoTest.java new file mode 100644 index 0000000000..53f47f2af4 --- /dev/null +++ b/nifi/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/test/java/org/apache/nifi/processors/mongodb/GetMongoTest.java @@ -0,0 +1,201 @@ +/* + * 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.mongodb; + +import java.util.Collection; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; + +import org.apache.nifi.components.ValidationResult; +import org.apache.nifi.processor.ProcessContext; +import org.apache.nifi.util.MockFlowFile; +import org.apache.nifi.util.MockProcessContext; +import org.apache.nifi.util.TestRunner; +import org.apache.nifi.util.TestRunners; +import org.bson.Document; +import org.junit.After; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import com.google.common.collect.Lists; +import com.mongodb.MongoClient; +import com.mongodb.MongoClientURI; +import com.mongodb.client.MongoCollection; + +public class GetMongoTest { + private static final String MONGO_URI = "mongodb://localhost"; + private static final String DB_NAME = GetMongoTest.class.getSimpleName().toLowerCase(); + private static final String COLLECTION_NAME = "test"; + + private static final List DOCUMENTS = Lists.newArrayList( + new Document("_id", "doc_1").append("a", 1).append("b", 2).append("c", 3), + new Document("_id", "doc_2").append("a", 1).append("b", 2).append("c", 4), + new Document("_id", "doc_3").append("a", 1).append("b", 3) + ); + + private TestRunner runner; + private MongoClient mongoClient; + + @Before + public void setup() { + runner = TestRunners.newTestRunner(GetMongo.class); + runner.setProperty(AbstractMongoProcessor.URI, MONGO_URI); + runner.setProperty(AbstractMongoProcessor.DATABASE_NAME, DB_NAME); + runner.setProperty(AbstractMongoProcessor.COLLECTION_NAME, COLLECTION_NAME); + + mongoClient = new MongoClient(new MongoClientURI(MONGO_URI)); + + MongoCollection collection = mongoClient.getDatabase(DB_NAME).getCollection(COLLECTION_NAME); + collection.insertMany(DOCUMENTS); + } + + @After + public void teardown() { + runner = null; + + mongoClient.getDatabase(DB_NAME).drop(); + } + + @Test + public void testValidators() { + TestRunner runner = TestRunners.newTestRunner(GetMongo.class); + Collection results; + ProcessContext pc; + + // missing uri, db, collection + runner.enqueue(new byte[0]); + pc = runner.getProcessContext(); + results = new HashSet<>(); + if (pc instanceof MockProcessContext) { + results = ((MockProcessContext) pc).validate(); + } + Assert.assertEquals(3, results.size()); + Iterator it = results.iterator(); + Assert.assertTrue(it.next().toString().contains("is invalid because Mongo URI is required")); + Assert.assertTrue(it.next().toString().contains("is invalid because Mongo Database Name is required")); + Assert.assertTrue(it.next().toString().contains("is invalid because Mongo Collection Name is required")); + + // missing query - is ok + runner.setProperty(AbstractMongoProcessor.URI, MONGO_URI); + runner.setProperty(AbstractMongoProcessor.DATABASE_NAME, DB_NAME); + runner.setProperty(AbstractMongoProcessor.COLLECTION_NAME, COLLECTION_NAME); + runner.enqueue(new byte[0]); + pc = runner.getProcessContext(); + results = new HashSet<>(); + if (pc instanceof MockProcessContext) { + results = ((MockProcessContext) pc).validate(); + } + Assert.assertEquals(0, results.size()); + + // invalid query + runner.setProperty(GetMongo.QUERY, "{a: x,y,z}"); + runner.enqueue(new byte[0]); + pc = runner.getProcessContext(); + results = new HashSet<>(); + if (pc instanceof MockProcessContext) { + results = ((MockProcessContext) pc).validate(); + } + Assert.assertEquals(1, results.size()); + Assert.assertTrue(results.iterator().next().toString().matches("'Query' .* is invalid because org.bson.json.JsonParseException")); + + // invalid projection + runner.setProperty(GetMongo.QUERY, "{a: 1}"); + runner.setProperty(GetMongo.PROJECTION, "{a: x,y,z}"); + runner.enqueue(new byte[0]); + pc = runner.getProcessContext(); + results = new HashSet<>(); + if (pc instanceof MockProcessContext) { + results = ((MockProcessContext) pc).validate(); + } + Assert.assertEquals(1, results.size()); + Assert.assertTrue(results.iterator().next().toString().matches("'Projection' .* is invalid because org.bson.json.JsonParseException")); + + // invalid sort + runner.removeProperty(GetMongo.PROJECTION); + runner.setProperty(GetMongo.SORT, "{a: x,y,z}"); + runner.enqueue(new byte[0]); + pc = runner.getProcessContext(); + results = new HashSet<>(); + if (pc instanceof MockProcessContext) { + results = ((MockProcessContext) pc).validate(); + } + Assert.assertEquals(1, results.size()); + Assert.assertTrue(results.iterator().next().toString().matches("'Sort' .* is invalid because org.bson.json.JsonParseException")); + } + + @Test + public void testReadOneDocument() throws Exception { + runner.setProperty(GetMongo.QUERY, "{a: 1, b: 3}"); + runner.run(); + + runner.assertAllFlowFilesTransferred(GetMongo.REL_SUCCESS, 1); + List flowFiles = runner.getFlowFilesForRelationship(GetMongo.REL_SUCCESS); + flowFiles.get(0).assertContentEquals(DOCUMENTS.get(2).toJson()); + } + + @Test + public void testReadMultipleDocuments() throws Exception { + runner.setProperty(GetMongo.QUERY, "{a: {$exists: true}}"); + runner.run(); + + runner.assertAllFlowFilesTransferred(GetMongo.REL_SUCCESS, 3); + List flowFiles = runner.getFlowFilesForRelationship(GetMongo.REL_SUCCESS); + for (int i=0; i < flowFiles.size(); i++) { + flowFiles.get(i).assertContentEquals(DOCUMENTS.get(i).toJson()); + } + } + + @Test + public void testProjection() throws Exception { + runner.setProperty(GetMongo.QUERY, "{a: 1, b: 3}"); + runner.setProperty(GetMongo.PROJECTION, "{_id: 0, a: 1}"); + runner.run(); + + runner.assertAllFlowFilesTransferred(GetMongo.REL_SUCCESS, 1); + List flowFiles = runner.getFlowFilesForRelationship(GetMongo.REL_SUCCESS); + Document expected = new Document("a", 1); + flowFiles.get(0).assertContentEquals(expected.toJson()); + } + + @Test + public void testSort() throws Exception { + runner.setProperty(GetMongo.QUERY, "{a: {$exists: true}}"); + runner.setProperty(GetMongo.SORT, "{a: -1, b: -1, c: 1}"); + runner.run(); + + runner.assertAllFlowFilesTransferred(GetMongo.REL_SUCCESS, 3); + List flowFiles = runner.getFlowFilesForRelationship(GetMongo.REL_SUCCESS); + flowFiles.get(0).assertContentEquals(DOCUMENTS.get(2).toJson()); + flowFiles.get(1).assertContentEquals(DOCUMENTS.get(0).toJson()); + flowFiles.get(2).assertContentEquals(DOCUMENTS.get(1).toJson()); + } + + @Test + public void testLimit() throws Exception { + runner.setProperty(GetMongo.QUERY, "{a: {$exists: true}}"); + runner.setProperty(GetMongo.LIMIT, "1"); + runner.run(); + + runner.assertAllFlowFilesTransferred(GetMongo.REL_SUCCESS, 1); + List flowFiles = runner.getFlowFilesForRelationship(GetMongo.REL_SUCCESS); + flowFiles.get(0).assertContentEquals(DOCUMENTS.get(0).toJson()); + } +} diff --git a/nifi/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/test/java/org/apache/nifi/processors/mongodb/PutMongoTest.java b/nifi/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/test/java/org/apache/nifi/processors/mongodb/PutMongoTest.java new file mode 100644 index 0000000000..d1ba027b1b --- /dev/null +++ b/nifi/nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/test/java/org/apache/nifi/processors/mongodb/PutMongoTest.java @@ -0,0 +1,254 @@ +/* + * 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.mongodb; + +import static com.google.common.base.Charsets.UTF_8; +import static org.junit.Assert.assertEquals; + +import java.util.Collection; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; + +import org.apache.nifi.components.ValidationResult; +import org.apache.nifi.processor.ProcessContext; +import org.apache.nifi.util.MockFlowFile; +import org.apache.nifi.util.MockProcessContext; +import org.apache.nifi.util.TestRunner; +import org.apache.nifi.util.TestRunners; +import org.bson.Document; +import org.junit.After; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import com.google.common.collect.Lists; +import com.mongodb.MongoClient; +import com.mongodb.MongoClientURI; +import com.mongodb.client.MongoCollection; + +public class PutMongoTest { + private static final String MONGO_URI = "mongodb://localhost"; + private static final String DATABASE_NAME = PutMongoTest.class.getSimpleName().toLowerCase(); + private static final String COLLECTION_NAME = "test"; + + private static final List DOCUMENTS = Lists.newArrayList( + new Document("_id", "doc_1").append("a", 1).append("b", 2).append("c", 3), + new Document("_id", "doc_2").append("a", 1).append("b", 2).append("c", 4), + new Document("_id", "doc_3").append("a", 1).append("b", 3) + ); + + private TestRunner runner; + private MongoClient mongoClient; + private MongoCollection collection; + + @Before + public void setup() { + runner = TestRunners.newTestRunner(PutMongo.class); + runner.setProperty(AbstractMongoProcessor.URI, MONGO_URI); + runner.setProperty(AbstractMongoProcessor.DATABASE_NAME, DATABASE_NAME); + runner.setProperty(AbstractMongoProcessor.COLLECTION_NAME, COLLECTION_NAME); + + mongoClient = new MongoClient(new MongoClientURI(MONGO_URI)); + + collection = mongoClient.getDatabase(DATABASE_NAME).getCollection(COLLECTION_NAME); + } + + @After + public void teardown() { + runner = null; + + mongoClient.getDatabase(DATABASE_NAME).drop(); + } + + private byte[] documentToByteArray(Document doc) { + return doc.toJson().getBytes(UTF_8); + } + + @Test + public void testValidators() { + TestRunner runner = TestRunners.newTestRunner(PutMongo.class); + Collection results; + ProcessContext pc; + + // missing uri, db, collection + runner.enqueue(new byte[0]); + pc = runner.getProcessContext(); + results = new HashSet<>(); + if (pc instanceof MockProcessContext) { + results = ((MockProcessContext) pc).validate(); + } + Assert.assertEquals(3, results.size()); + Iterator it = results.iterator(); + Assert.assertTrue(it.next().toString().contains("is invalid because Mongo URI is required")); + Assert.assertTrue(it.next().toString().contains("is invalid because Mongo Database Name is required")); + Assert.assertTrue(it.next().toString().contains("is invalid because Mongo Collection Name is required")); + + // invalid write concern + runner.setProperty(AbstractMongoProcessor.URI, MONGO_URI); + runner.setProperty(AbstractMongoProcessor.DATABASE_NAME, DATABASE_NAME); + runner.setProperty(AbstractMongoProcessor.COLLECTION_NAME, COLLECTION_NAME); + runner.setProperty(PutMongo.WRITE_CONCERN, "xyz"); + runner.enqueue(new byte[0]); + pc = runner.getProcessContext(); + results = new HashSet<>(); + if (pc instanceof MockProcessContext) { + results = ((MockProcessContext) pc).validate(); + } + Assert.assertEquals(1, results.size()); + Assert.assertTrue(results.iterator().next().toString().matches("'Write Concern' .* is invalid because Given value not found in allowed set .*")); + + // valid write concern + runner.setProperty(PutMongo.WRITE_CONCERN, PutMongo.WRITE_CONCERN_UNACKNOWLEDGED); + runner.enqueue(new byte[0]); + pc = runner.getProcessContext(); + results = new HashSet<>(); + if (pc instanceof MockProcessContext) { + results = ((MockProcessContext) pc).validate(); + } + Assert.assertEquals(0, results.size()); + } + + @Test + public void testInsertOne() throws Exception { + Document doc = DOCUMENTS.get(0); + byte[] bytes = documentToByteArray(doc); + + runner.enqueue(bytes); + runner.run(); + + runner.assertAllFlowFilesTransferred(PutMongo.REL_SUCCESS, 1); + MockFlowFile out = runner.getFlowFilesForRelationship(PutMongo.REL_SUCCESS).get(0); + out.assertContentEquals(bytes); + + // verify 1 doc inserted into the collection + assertEquals(1, collection.count()); + assertEquals(doc, collection.find().first()); + } + + @Test + public void testInsertMany() throws Exception { + for (Document doc : DOCUMENTS) { + runner.enqueue(documentToByteArray(doc)); + } + runner.run(3); + + runner.assertAllFlowFilesTransferred(PutMongo.REL_SUCCESS, 3); + List flowFiles = runner.getFlowFilesForRelationship(PutMongo.REL_SUCCESS); + for (int i=0; i < flowFiles.size(); i++) { + flowFiles.get(i).assertContentEquals(DOCUMENTS.get(i).toJson()); + } + + // verify 3 docs inserted into the collection + assertEquals(3, collection.count()); + } + + @Test + public void testInsertWithDuplicateKey() throws Exception { + // pre-insert one document + collection.insertOne(DOCUMENTS.get(0)); + + for (Document doc : DOCUMENTS) { + runner.enqueue(documentToByteArray(doc)); + } + runner.run(3); + + // first doc failed, other 2 succeeded + runner.assertTransferCount(PutMongo.REL_FAILURE, 1); + MockFlowFile out = runner.getFlowFilesForRelationship(PutMongo.REL_FAILURE).get(0); + out.assertContentEquals(documentToByteArray(DOCUMENTS.get(0))); + + runner.assertTransferCount(PutMongo.REL_SUCCESS, 2); + List flowFiles = runner.getFlowFilesForRelationship(PutMongo.REL_SUCCESS); + for (int i=0; i < flowFiles.size(); i++) { + flowFiles.get(i).assertContentEquals(DOCUMENTS.get(i+1).toJson()); + } + + // verify 2 docs inserted into the collection for a total of 3 + assertEquals(3, collection.count()); + } + + /** + * Verifies that 'update' does not insert if 'upsert' if false. + * @see #testUpsert() + */ + @Test + public void testUpdateDoesNotInsert() throws Exception { + Document doc = DOCUMENTS.get(0); + byte[] bytes = documentToByteArray(doc); + + runner.setProperty(PutMongo.MODE, "update"); + runner.enqueue(bytes); + runner.run(); + + runner.assertAllFlowFilesTransferred(PutMongo.REL_SUCCESS, 1); + MockFlowFile out = runner.getFlowFilesForRelationship(PutMongo.REL_SUCCESS).get(0); + out.assertContentEquals(bytes); + + // nothing was in collection, so nothing to update since upsert defaults to false + assertEquals(0, collection.count()); + } + + /** + * Verifies that 'update' does insert if 'upsert' is true. + * @see #testUpdateDoesNotInsert() + */ + @Test + public void testUpsert() throws Exception { + Document doc = DOCUMENTS.get(0); + byte[] bytes = documentToByteArray(doc); + + runner.setProperty(PutMongo.MODE, "update"); + runner.setProperty(PutMongo.UPSERT, "true"); + runner.enqueue(bytes); + runner.run(); + + runner.assertAllFlowFilesTransferred(PutMongo.REL_SUCCESS, 1); + MockFlowFile out = runner.getFlowFilesForRelationship(PutMongo.REL_SUCCESS).get(0); + out.assertContentEquals(bytes); + + // verify 1 doc inserted into the collection + assertEquals(1, collection.count()); + assertEquals(doc, collection.find().first()); + } + + @Test + public void testUpdate() throws Exception { + Document doc = DOCUMENTS.get(0); + + // pre-insert document + collection.insertOne(doc); + + // modify the object + doc.put("abc", "123"); + doc.put("xyz", "456"); + doc.remove("c"); + + byte[] bytes = documentToByteArray(doc); + + runner.setProperty(PutMongo.MODE, "update"); + runner.enqueue(bytes); + runner.run(); + + runner.assertAllFlowFilesTransferred(PutMongo.REL_SUCCESS, 1); + MockFlowFile out = runner.getFlowFilesForRelationship(PutMongo.REL_SUCCESS).get(0); + out.assertContentEquals(bytes); + + assertEquals(1, collection.count()); + assertEquals(doc, collection.find().first()); + } +} diff --git a/nifi/nifi-nar-bundles/nifi-mongodb-bundle/pom.xml b/nifi/nifi-nar-bundles/nifi-mongodb-bundle/pom.xml new file mode 100644 index 0000000000..0a58ff31d8 --- /dev/null +++ b/nifi/nifi-nar-bundles/nifi-mongodb-bundle/pom.xml @@ -0,0 +1,35 @@ + + + + 4.0.0 + + + org.apache.nifi + nifi-nar-bundles + 0.1.1-incubating-SNAPSHOT + + + org.apache.nifi + nifi-mongodb-bundle + 0.1.1-incubating-SNAPSHOT + pom + + + nifi-mongodb-processors + nifi-mongodb-nar + + + diff --git a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/pom.xml b/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/pom.xml index dc0affc541..154524537c 100644 --- a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/pom.xml @@ -17,7 +17,7 @@ org.apache.nifi nifi-provenance-repository-bundle - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-persistent-provenance-repository jar diff --git a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-provenance-repository-nar/pom.xml b/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-provenance-repository-nar/pom.xml index 613ca50c59..87aedcc3de 100644 --- a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-provenance-repository-nar/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-provenance-repository-nar/pom.xml @@ -17,7 +17,7 @@ org.apache.nifi nifi-provenance-repository-bundle - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-provenance-repository-nar nar diff --git a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-volatile-provenance-repository/pom.xml b/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-volatile-provenance-repository/pom.xml index 6f8c3f544c..e1f1e62ad9 100644 --- a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-volatile-provenance-repository/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-volatile-provenance-repository/pom.xml @@ -17,7 +17,7 @@ org.apache.nifi nifi-provenance-repository-bundle - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-volatile-provenance-repository jar diff --git a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/pom.xml b/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/pom.xml index 7bf95157aa..574beb60d9 100644 --- a/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-provenance-repository-bundle/pom.xml @@ -17,7 +17,7 @@ org.apache.nifi nifi-nar-bundles - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-provenance-repository-bundle pom @@ -31,12 +31,12 @@ org.apache.nifi nifi-persistent-provenance-repository - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-volatile-provenance-repository - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT 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 index 6da74dd68a..85d317f9a0 100644 --- 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 @@ -19,7 +19,7 @@ org.apache.nifi nifi-social-media-bundle - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-social-media-nar @@ -29,7 +29,7 @@ org.apache.nifi nifi-twitter-processors - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT 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 index 4768dbc2f1..5318226a1e 100644 --- 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 @@ -19,7 +19,7 @@ org.apache.nifi nifi-social-media-bundle - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-twitter-processors diff --git a/nifi/nifi-nar-bundles/nifi-social-media-bundle/pom.xml b/nifi/nifi-nar-bundles/nifi-social-media-bundle/pom.xml index 5aadbce05e..a4a7787a40 100644 --- a/nifi/nifi-nar-bundles/nifi-social-media-bundle/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-social-media-bundle/pom.xml @@ -19,7 +19,7 @@ org.apache.nifi nifi-nar-bundles - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-social-media-bundle diff --git a/nifi/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-nar/pom.xml b/nifi/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-nar/pom.xml index aeab88c189..6379b6b329 100644 --- a/nifi/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-nar/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-nar/pom.xml @@ -19,7 +19,7 @@ org.apache.nifi nifi-solr-bundle - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-solr-nar @@ -29,7 +29,7 @@ org.apache.nifi nifi-solr-processors - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT diff --git a/nifi/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/pom.xml b/nifi/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/pom.xml index df8e45182b..c396e5bc44 100644 --- a/nifi/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/pom.xml @@ -19,7 +19,7 @@ org.apache.nifi nifi-solr-bundle - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-solr-processors diff --git a/nifi/nifi-nar-bundles/nifi-solr-bundle/pom.xml b/nifi/nifi-nar-bundles/nifi-solr-bundle/pom.xml index e027a638dd..2d072ad93a 100644 --- a/nifi/nifi-nar-bundles/nifi-solr-bundle/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-solr-bundle/pom.xml @@ -19,7 +19,7 @@ org.apache.nifi nifi-nar-bundles - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-solr-bundle diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-content-viewer/pom.xml b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-content-viewer/pom.xml index 576a328416..a54fa93258 100644 --- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-content-viewer/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-content-viewer/pom.xml @@ -17,7 +17,7 @@ org.apache.nifi nifi-standard-bundle - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-standard-content-viewer diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-nar/pom.xml b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-nar/pom.xml index 15b285da4d..b7fbeb6eb1 100644 --- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-nar/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-nar/pom.xml @@ -17,7 +17,7 @@ org.apache.nifi nifi-standard-bundle - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-standard-nar nar diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-prioritizers/pom.xml b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-prioritizers/pom.xml index e837ec8086..78b9a15bba 100644 --- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-prioritizers/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-prioritizers/pom.xml @@ -17,7 +17,7 @@ org.apache.nifi nifi-standard-bundle - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-standard-prioritizers diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/pom.xml b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/pom.xml index e989208c1c..e00783856a 100644 --- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/pom.xml @@ -18,7 +18,7 @@ org.apache.nifi nifi-standard-bundle - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-standard-processors jar diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ListenUDP.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ListenUDP.java index fa60d6b229..6a88bd4869 100644 --- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ListenUDP.java +++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ListenUDP.java @@ -147,6 +147,14 @@ public class ListenUDP extends AbstractSessionFactoryProcessor { .required(true) .build(); + public static final PropertyDescriptor FLOW_FILE_PER_DATAGRAM = new PropertyDescriptor.Builder() + .name("FlowFile Per Datagram") + .description("Determines if this processor emits each datagram as a FlowFile, or if multiple datagrams can be placed in a single FlowFile.") + .allowableValues("true", "false") + .defaultValue("false") + .required(true) + .build(); + public static final PropertyDescriptor MAX_BUFFER_SIZE = new PropertyDescriptor.Builder() .name("Max Buffer Size") .description("Determines the size each receive buffer may be") @@ -273,6 +281,7 @@ public class ListenUDP extends AbstractSessionFactoryProcessor { props.add(RECV_BUFFER_COUNT); props.add(FLOW_FILES_PER_SESSION); props.add(RECV_TIMEOUT); + props.add(FLOW_FILE_PER_DATAGRAM); properties = Collections.unmodifiableList(props); } // defaults @@ -429,18 +438,19 @@ public class ListenUDP extends AbstractSessionFactoryProcessor { final String nicIPAddressStr = context.getProperty(NETWORK_INTF_NAME).evaluateAttributeExpressions().getValue(); final Double flowFileSizeTrigger = context.getProperty(FLOW_FILE_SIZE_TRIGGER).asDataSize(DataUnit.B); final int recvTimeoutMS = context.getProperty(RECV_TIMEOUT).asTimePeriod(TimeUnit.MILLISECONDS).intValue(); + final boolean flowFilePerDatagram = context.getProperty(FLOW_FILE_PER_DATAGRAM).asBoolean(); final StreamConsumerFactory consumerFactory = new StreamConsumerFactory() { @Override public StreamConsumer newInstance(final String streamId) { - final UDPStreamConsumer consumer = new UDPStreamConsumer(streamId, newFlowFiles, flowFileSizeTrigger.intValue(), getLogger()); + final UDPStreamConsumer consumer = new UDPStreamConsumer(streamId, newFlowFiles, flowFileSizeTrigger.intValue(), getLogger(), flowFilePerDatagram); consumerRef.set(consumer); return consumer; } }; final int readerMilliseconds = context.getProperty(CHANNEL_READER_PERIOD).asTimePeriod(TimeUnit.MILLISECONDS).intValue(); final BufferPool bufferPool = new BufferPool(bufferCount, bufferSize.intValue(), false, Integer.MAX_VALUE); - channelListener = new ChannelListener(DEFAULT_LISTENING_THREADS, consumerFactory, bufferPool, recvTimeoutMS, TimeUnit.MILLISECONDS); + channelListener = new ChannelListener(DEFAULT_LISTENING_THREADS, consumerFactory, bufferPool, recvTimeoutMS, TimeUnit.MILLISECONDS, flowFilePerDatagram); // specifying a sufficiently low number for each stream to be fast enough though very efficient channelListener.setChannelReaderSchedulingPeriod(readerMilliseconds, TimeUnit.MILLISECONDS); InetAddress nicIPAddress = null; diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/UDPStreamConsumer.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/UDPStreamConsumer.java index 617050949a..38f8add557 100644 --- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/UDPStreamConsumer.java +++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/UDPStreamConsumer.java @@ -54,11 +54,12 @@ public class UDPStreamConsumer implements StreamConsumer { private ProcessSession session; private final UDPConsumerCallback udpCallback; - public UDPStreamConsumer(final String streamId, final List newFlowFiles, final long fileSizeTrigger, final ProcessorLog logger) { + public UDPStreamConsumer(final String streamId, final List newFlowFiles, final long fileSizeTrigger, final ProcessorLog logger, + final boolean flowFilePerDatagram) { this.uniqueId = streamId; this.newFlowFileQueue = newFlowFiles; this.logger = logger; - this.udpCallback = new UDPConsumerCallback(filledBuffers, fileSizeTrigger); + this.udpCallback = new UDPConsumerCallback(filledBuffers, fileSizeTrigger, flowFilePerDatagram); } @Override @@ -173,10 +174,12 @@ public class UDPStreamConsumer implements StreamConsumer { BufferPool bufferPool; final BlockingQueue filledBuffers; final long fileSizeTrigger; + final boolean flowFilePerDatagram; - public UDPConsumerCallback(final BlockingQueue filledBuffers, final long fileSizeTrigger) { + public UDPConsumerCallback(final BlockingQueue filledBuffers, final long fileSizeTrigger, final boolean flowFilePerDatagram) { this.filledBuffers = filledBuffers; this.fileSizeTrigger = fileSizeTrigger; + this.flowFilePerDatagram = flowFilePerDatagram; } public void setBufferPool(BufferPool pool) { @@ -196,7 +199,7 @@ public class UDPStreamConsumer implements StreamConsumer { bytesWrittenThisPass += wbc.write(buffer); } totalBytes += bytesWrittenThisPass; - if (totalBytes > fileSizeTrigger) { + if (totalBytes > fileSizeTrigger || flowFilePerDatagram) { break;// this is enough data } } finally { diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/pom.xml b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/pom.xml index a110f7efe3..975b10f293 100644 --- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/pom.xml @@ -17,7 +17,7 @@ org.apache.nifi nifi-standard-bundle - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-standard-reporting-tasks jar diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/pom.xml b/nifi/nifi-nar-bundles/nifi-standard-bundle/pom.xml index 6c00f1f4a1..572861d490 100644 --- a/nifi/nifi-nar-bundles/nifi-standard-bundle/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/pom.xml @@ -18,7 +18,7 @@ org.apache.nifi nifi-nar-bundles - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-standard-bundle pom @@ -35,23 +35,23 @@ org.apache.nifi nifi-standard-processors - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-standard-prioritizers - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-standard-reporting-tasks - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-standard-content-viewer war - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-client-service-api/pom.xml b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-client-service-api/pom.xml index 8b26d0f94d..84757ef130 100644 --- a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-client-service-api/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-client-service-api/pom.xml @@ -17,7 +17,7 @@ org.apache.nifi nifi-standard-services - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-distributed-cache-client-service-api jar diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-client-service/pom.xml b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-client-service/pom.xml index 69b39fb7ad..bd9797cdc4 100644 --- a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-client-service/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-client-service/pom.xml @@ -17,7 +17,7 @@ org.apache.nifi nifi-distributed-cache-services-bundle - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-distributed-cache-client-service jar diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-protocol/pom.xml b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-protocol/pom.xml index b4f082f435..39580c24f9 100644 --- a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-protocol/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-protocol/pom.xml @@ -17,7 +17,7 @@ org.apache.nifi nifi-distributed-cache-services-bundle - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-distributed-cache-protocol diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/pom.xml b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/pom.xml index db0ca43d27..f572922a02 100644 --- a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/pom.xml @@ -17,7 +17,7 @@ org.apache.nifi nifi-distributed-cache-services-bundle - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-distributed-cache-server Provides a Controller Service for hosting Distributed Caches diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-services-nar/pom.xml b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-services-nar/pom.xml index e802e6442b..b9f8e7d0bb 100644 --- a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-services-nar/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-services-nar/pom.xml @@ -17,7 +17,7 @@ org.apache.nifi nifi-distributed-cache-services-bundle - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-distributed-cache-services-nar nar diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/pom.xml b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/pom.xml index ff51b00f97..654488c1c3 100644 --- a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/pom.xml @@ -17,7 +17,7 @@ org.apache.nifi nifi-standard-services - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-distributed-cache-services-bundle pom diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-http-context-map-api/pom.xml b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-http-context-map-api/pom.xml index 2f87d46ff3..1d9b1f4195 100644 --- a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-http-context-map-api/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-http-context-map-api/pom.xml @@ -18,7 +18,7 @@ org.apache.nifi nifi-standard-services - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-http-context-map-api diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-http-context-map-bundle/nifi-http-context-map-nar/pom.xml b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-http-context-map-bundle/nifi-http-context-map-nar/pom.xml index 2d6bd34756..b022572298 100644 --- a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-http-context-map-bundle/nifi-http-context-map-nar/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-http-context-map-bundle/nifi-http-context-map-nar/pom.xml @@ -17,7 +17,7 @@ org.apache.nifi nifi-http-context-map-bundle - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-http-context-map-nar diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-http-context-map-bundle/nifi-http-context-map/pom.xml b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-http-context-map-bundle/nifi-http-context-map/pom.xml index eb2abdd317..680dbfd214 100644 --- a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-http-context-map-bundle/nifi-http-context-map/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-http-context-map-bundle/nifi-http-context-map/pom.xml @@ -17,7 +17,7 @@ org.apache.nifi nifi-http-context-map-bundle - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-http-context-map diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-http-context-map-bundle/pom.xml b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-http-context-map-bundle/pom.xml index bac46a7525..83510d9281 100644 --- a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-http-context-map-bundle/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-http-context-map-bundle/pom.xml @@ -17,7 +17,7 @@ org.apache.nifi nifi-standard-services - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-http-context-map-bundle diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-load-distribution-service-api/pom.xml b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-load-distribution-service-api/pom.xml index aebfbb8748..0a2e96207d 100644 --- a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-load-distribution-service-api/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-load-distribution-service-api/pom.xml @@ -17,7 +17,7 @@ org.apache.nifi nifi-standard-services - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-load-distribution-service-api jar diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-nar/pom.xml b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-nar/pom.xml index 5054bbc2b0..16217ca53b 100644 --- a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-nar/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-nar/pom.xml @@ -17,7 +17,7 @@ org.apache.nifi nifi-ssl-context-bundle - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-ssl-context-service-nar nar diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/pom.xml b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/pom.xml index ac00b02ca4..24706f7552 100644 --- a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/pom.xml @@ -17,7 +17,7 @@ org.apache.nifi nifi-ssl-context-bundle - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-ssl-context-service jar diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/pom.xml b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/pom.xml index 6a6e8cc132..76f7e69f2c 100644 --- a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/pom.xml @@ -17,7 +17,7 @@ org.apache.nifi nifi-standard-services - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-ssl-context-bundle pom diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-service-api/pom.xml b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-service-api/pom.xml index f84bbb7682..60c9246d92 100644 --- a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-service-api/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-service-api/pom.xml @@ -17,7 +17,7 @@ org.apache.nifi nifi-standard-services - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-ssl-context-service-api jar diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-standard-services-api-nar/pom.xml b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-standard-services-api-nar/pom.xml index d57d8be9f9..b3a6c80028 100644 --- a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-standard-services-api-nar/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-standard-services-api-nar/pom.xml @@ -17,7 +17,7 @@ org.apache.nifi nifi-standard-services - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-standard-services-api-nar nar diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/pom.xml b/nifi/nifi-nar-bundles/nifi-standard-services/pom.xml index 36dcec7301..083fb26f3e 100644 --- a/nifi/nifi-nar-bundles/nifi-standard-services/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-standard-services/pom.xml @@ -18,7 +18,7 @@ org.apache.nifi nifi-nar-bundles - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-standard-services pom diff --git a/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-model/pom.xml b/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-model/pom.xml index c8263aa1ce..4bce547394 100644 --- a/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-model/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-model/pom.xml @@ -18,7 +18,7 @@ org.apache.nifi nifi-update-attribute-bundle - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-update-attribute-model diff --git a/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-nar/pom.xml b/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-nar/pom.xml index a4131244b1..67566deea4 100644 --- a/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-nar/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-nar/pom.xml @@ -17,7 +17,7 @@ org.apache.nifi nifi-update-attribute-bundle - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-update-attribute-nar nar diff --git a/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-processor/pom.xml b/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-processor/pom.xml index a87eae927f..1b5be60684 100644 --- a/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-processor/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-processor/pom.xml @@ -18,7 +18,7 @@ org.apache.nifi nifi-update-attribute-bundle - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-update-attribute-processor diff --git a/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/pom.xml b/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/pom.xml index 14bc7682ae..a28228365b 100644 --- a/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/nifi-update-attribute-ui/pom.xml @@ -18,7 +18,7 @@ org.apache.nifi nifi-update-attribute-bundle - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-update-attribute-ui war diff --git a/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/pom.xml b/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/pom.xml index 84aca3fb31..9b0179c9f4 100644 --- a/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/pom.xml +++ b/nifi/nifi-nar-bundles/nifi-update-attribute-bundle/pom.xml @@ -18,7 +18,7 @@ org.apache.nifi nifi-nar-bundles - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nifi-update-attribute-bundle pom @@ -34,18 +34,18 @@ org.apache.nifi nifi-update-attribute-model - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-update-attribute-processor - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-update-attribute-ui war - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT diff --git a/nifi/nifi-nar-bundles/pom.xml b/nifi/nifi-nar-bundles/pom.xml index 674bb92aac..dff098b848 100644 --- a/nifi/nifi-nar-bundles/pom.xml +++ b/nifi/nifi-nar-bundles/pom.xml @@ -18,7 +18,7 @@ org.apache.nifi nifi - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-nar-bundles @@ -33,94 +33,95 @@ nifi-standard-services nifi-update-attribute-bundle nifi-kafka-bundle - nifi-kite-bundle + nifi-kite-bundle nifi-solr-bundle - nifi-aws-bundle - nifi-social-media-bundle - nifi-geo-bundle - nifi-hl7-bundle - nifi-language-translation-bundle + nifi-aws-bundle + nifi-social-media-bundle + nifi-geo-bundle + nifi-hl7-bundle + nifi-language-translation-bundle + nifi-mongodb-bundle org.apache.nifi nifi-distributed-cache-client-service - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-distributed-cache-client-service-api - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT provided org.apache.nifi nifi-ssl-context-service-api - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT provided org.apache.nifi nifi-load-distribution-service-api - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT provided - + org.apache.nifi nifi-http-context-map-api - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT provided org.apache.nifi nifi-distributed-cache-protocol - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-distributed-cache-server - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-ssl-context-service - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT - + org.apache.nifi nifi-http-context-map - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-volatile-provenance-repository - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT test org.apache.nifi nifi-api - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT provided org.apache.nifi nifi-runtime - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT provided org.apache.nifi nifi-nar-utils - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT provided org.apache.nifi nifi-properties - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT provided diff --git a/nifi/pom.xml b/nifi/pom.xml index 744440304c..f8d2638828 100644 --- a/nifi/pom.xml +++ b/nifi/pom.xml @@ -18,11 +18,11 @@ org.apache.nifi nifi-parent - 1.0.0-incubating-SNAPSHOT + 1.0.0-incubating nifi - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT pom Apache NiFi(incubating) is an easy to use, powerful, and reliable system to process and distribute data. @@ -609,67 +609,67 @@ org.apache.nifi nifi-api - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-utils - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-site-to-site-client - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-web-utils - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-expression-language - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-custom-ui-utilities - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-ui-extension - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-flowfile-packager - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-socket-utils - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-data-provenance-utils - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-runtime - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-bootstrap - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-resources - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT resources runtime zip @@ -677,7 +677,7 @@ org.apache.nifi nifi-docs - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT resources runtime zip @@ -685,146 +685,152 @@ org.apache.nifi nifi-framework-nar - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nar org.apache.nifi nifi-provenance-repository-nar - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nar org.apache.nifi nifi-standard-services-api-nar - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nar org.apache.nifi nifi-ssl-context-service-nar - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nar org.apache.nifi nifi-distributed-cache-services-nar - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nar org.apache.nifi nifi-standard-nar - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nar org.apache.nifi nifi-jetty-bundle - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nar org.apache.nifi nifi-update-attribute-nar - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nar org.apache.nifi nifi-hadoop-libraries-nar - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nar org.apache.nifi nifi-hadoop-nar - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nar org.apache.nifi nifi-kite-nar - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT + nar + + + org.apache.nifi + nifi-mongodb-nar + 0.1.1-incubating-SNAPSHOT nar org.apache.nifi nifi-solr-nar - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nar org.apache.nifi nifi-kafka-nar - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nar org.apache.nifi nifi-http-context-map-nar - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nar org.apache.nifi nifi-social-media-nar - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nar org.apache.nifi nifi-hl7-nar - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nar org.apache.nifi nifi-language-translation-nar - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nar org.apache.nifi nifi-geo-nar - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT nar org.apache.nifi nifi-properties - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-security-utils - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-logging-utils - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-nar-utils - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-processor-utils - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT org.apache.nifi nifi-mock - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT test org.apache.nifi nifi-write-ahead-log - 0.1.0-incubating-SNAPSHOT + 0.1.1-incubating-SNAPSHOT com.jayway.jsonpath @@ -874,7 +880,7 @@ org.apache.nifi nifi-nar-maven-plugin - 1.0.1-incubating-SNAPSHOT + 1.0.1-incubating true