You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by jo...@apache.org on 2015/04/22 20:50:28 UTC
[6/6] incubator-nifi git commit: NIFI-537 fixed identified licensing
issue with several of the new nars
NIFI-537 fixed identified licensing issue with several of the new nars
Project: http://git-wip-us.apache.org/repos/asf/incubator-nifi/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-nifi/commit/060a1e0d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-nifi/tree/060a1e0d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-nifi/diff/060a1e0d
Branch: refs/heads/NIFI-271
Commit: 060a1e0d9cbc15a1a21ac46c9f1ad4f8a7b2a986
Parents: 0d78382
Author: joewitt <jo...@apache.org>
Authored: Wed Apr 22 14:50:03 2015 -0400
Committer: joewitt <jo...@apache.org>
Committed: Wed Apr 22 14:50:03 2015 -0400
----------------------------------------------------------------------
nifi/nifi-assembly/NOTICE | 35 +-
nifi/nifi-assembly/pom.xml | 928 +++++++++----------
.../src/main/resources/META-INF/NOTICE | 74 ++
.../nifi-aws-bundle/nifi-aws-processors/pom.xml | 19 +-
.../processors/aws/AbstractAWSProcessor.java | 99 +-
.../processors/aws/s3/AbstractS3Processor.java | 152 ++-
.../nifi/processors/aws/s3/FetchS3Object.java | 78 +-
.../nifi/processors/aws/s3/PutS3Object.java | 100 +-
.../aws/sns/AbstractSNSProcessor.java | 42 +-
.../apache/nifi/processors/aws/sns/PutSNS.java | 95 +-
.../aws/sqs/AbstractSQSProcessor.java | 24 +-
.../nifi/processors/aws/sqs/DeleteSQS.java | 40 +-
.../apache/nifi/processors/aws/sqs/GetSQS.java | 136 +--
.../apache/nifi/processors/aws/sqs/PutSQS.java | 69 +-
.../processors/aws/s3/TestFetchS3Object.java | 31 +-
.../nifi/processors/aws/s3/TestPutS3Object.java | 45 +-
.../nifi/processors/aws/sns/TestPutSNS.java | 25 +-
.../nifi/processors/aws/sqs/TestGetSQS.java | 23 +-
.../nifi/processors/aws/sqs/TestPutSQS.java | 23 +-
nifi/nifi-nar-bundles/nifi-aws-bundle/pom.xml | 18 +-
.../src/main/resources/META-INF/NOTICE | 68 ++
.../src/main/resources/META-INF/NOTICE | 29 +
.../src/main/resources/META-INF/NOTICE | 57 ++
23 files changed, 1254 insertions(+), 956 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/060a1e0d/nifi/nifi-assembly/NOTICE
----------------------------------------------------------------------
diff --git a/nifi/nifi-assembly/NOTICE b/nifi/nifi-assembly/NOTICE
index f14c662..73780db 100644
--- a/nifi/nifi-assembly/NOTICE
+++ b/nifi/nifi-assembly/NOTICE
@@ -511,44 +511,31 @@ The following binary components are provided under the Apache Software License v
The following NOTICE information applies:
JOAuth
Copyright 2010-2013 Twitter, Inc
-
- Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0
(ASLv2) Hosebird Client
The following NOTICE information applies:
Hosebird Client (hbc)
Copyright 2013 Twitter, Inc.
- Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0
-
(ASLv2) GeoIP2 Java API
The following NOTICE information applies:
GeoIP2 Java API
This software is Copyright (c) 2013 by MaxMind, Inc.
- This is free software, licensed under the Apache License, Version 2.0.
-
- (ASLv2) Google HTTP Client Library for Java
- The following NOTICE information applies:
- Google HTTP Client Library for Java
-
- This is free software, licensed under the Apache License, Version 2.0.
-
(ASLv2) Amazon Web Services SDK
The following NOTICE information applies:
- Copyright 2010-2014 Amazon.com, Inc. or its affiliates. All Rights Reserved.
-
- This product includes software developed by
- Amazon Technologies, Inc (http://www.amazon.com/).
-
- **********************
- THIRD PARTY COMPONENTS
- **********************
- This software includes third party software subject to the following copyrights:
- - XML parsing and utility functions from JetS3t - Copyright 2006-2009 James Murty.
- - JSON parsing and utility functions from JSON.org - Copyright 2002 JSON.org.
- - PKCS#1 PEM encoded private key parsing and utility functions from oauth.googlecode.com - Copyright 1998-2010 AOL Inc.
+ Copyright 2010-2014 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ This product includes software developed by
+ Amazon Technologies, Inc (http://www.amazon.com/).
+
+ **********************
+ THIRD PARTY COMPONENTS
+ **********************
+ This software includes third party software subject to the following copyrights:
+ - XML parsing and utility functions from JetS3t - Copyright 2006-2009 James Murty.
+ - JSON parsing and utility functions from JSON.org - Copyright 2002 JSON.org.
+ - PKCS#1 PEM encoded private key parsing and utility functions from oauth.googlecode.com - Copyright 1998-2010 AOL Inc.
************************
Common Development and Distribution License 1.1
http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/060a1e0d/nifi/nifi-assembly/pom.xml
----------------------------------------------------------------------
diff --git a/nifi/nifi-assembly/pom.xml b/nifi/nifi-assembly/pom.xml
index 13ffba8..7b08ed4 100644
--- a/nifi/nifi-assembly/pom.xml
+++ b/nifi/nifi-assembly/pom.xml
@@ -1,484 +1,484 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor
- license agreements. See the NOTICE file distributed with this work for additional
- information regarding copyright ownership. The ASF licenses this file to
- You under the Apache License, Version 2.0 (the "License"); you may not use
- this file except in compliance with the License. You may obtain a copy of
- the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required
- by applicable law or agreed to in writing, software distributed under the
- License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
- OF ANY KIND, either express or implied. See the License for the specific
- language governing permissions and limitations under the License. -->
+license agreements. See the NOTICE file distributed with this work for additional
+information regarding copyright ownership. The ASF licenses this file to
+You under the Apache License, Version 2.0 (the "License"); you may not use
+this file except in compliance with the License. You may obtain a copy of
+the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required
+by applicable law or agreed to in writing, software distributed under the
+License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
+OF ANY KIND, either express or implied. See the License for the specific
+language governing permissions and limitations under the License. -->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi</artifactId>
- <version>0.1.0-incubating-SNAPSHOT</version>
- </parent>
- <artifactId>nifi-assembly</artifactId>
- <packaging>pom</packaging>
- <description>This is the assembly Apache NiFi (incubating)</description>
- <build>
- <plugins>
- <plugin>
- <artifactId>maven-assembly-plugin</artifactId>
- <configuration>
- <finalName>nifi-${project.version}</finalName>
- <attach>false</attach>
- </configuration>
- <executions>
- <execution>
- <id>make shared resource</id>
- <goals>
- <goal>single</goal>
- </goals>
- <phase>package</phase>
- <configuration>
- <descriptors>
- <descriptor>src/main/assembly/dependencies.xml</descriptor>
- </descriptors>
- <tarLongFileMode>posix</tarLongFileMode>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- <dependencies>
- <dependency>
- <groupId>ch.qos.logback</groupId>
- <artifactId>logback-classic</artifactId>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>jcl-over-slf4j</artifactId>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>jul-to-slf4j</artifactId>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>log4j-over-slf4j</artifactId>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-api</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-runtime</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-bootstrap</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-resources</artifactId>
- <classifier>resources</classifier>
- <scope>runtime</scope>
- <type>zip</type>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-docs</artifactId>
- <classifier>resources</classifier>
- <scope>runtime</scope>
- <type>zip</type>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-framework-nar</artifactId>
- <type>nar</type>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-provenance-repository-nar</artifactId>
- <type>nar</type>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-standard-services-api-nar</artifactId>
- <type>nar</type>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-ssl-context-service-nar</artifactId>
- <type>nar</type>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-distributed-cache-services-nar</artifactId>
- <type>nar</type>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-standard-nar</artifactId>
- <type>nar</type>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-jetty-bundle</artifactId>
- <type>nar</type>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-update-attribute-nar</artifactId>
- <type>nar</type>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-hadoop-libraries-nar</artifactId>
- <type>nar</type>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-hadoop-nar</artifactId>
- <type>nar</type>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-kafka-nar</artifactId>
- <type>nar</type>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-http-context-map-nar</artifactId>
- <type>nar</type>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-kite-nar</artifactId>
- <type>nar</type>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-social-media-nar</artifactId>
- <version>0.1.0-incubating-SNAPSHOT</version>
- <type>nar</type>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-hl7-nar</artifactId>
- <version>0.1.0-incubating-SNAPSHOT</version>
- <type>nar</type>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-language-translation-nar</artifactId>
- <version>0.1.0-incubating-SNAPSHOT</version>
- <type>nar</type>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-geo-nar</artifactId>
- <version>0.1.0-incubating-SNAPSHOT</version>
- <type>nar</type>
- </dependency>
- </dependencies>
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi</artifactId>
+ <version>0.1.0-incubating-SNAPSHOT</version>
+ </parent>
+ <artifactId>nifi-assembly</artifactId>
+ <packaging>pom</packaging>
+ <description>This is the assembly Apache NiFi (incubating)</description>
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <configuration>
+ <finalName>nifi-${project.version}</finalName>
+ <attach>false</attach>
+ </configuration>
+ <executions>
+ <execution>
+ <id>make shared resource</id>
+ <goals>
+ <goal>single</goal>
+ </goals>
+ <phase>package</phase>
+ <configuration>
+ <descriptors>
+ <descriptor>src/main/assembly/dependencies.xml</descriptor>
+ </descriptors>
+ <tarLongFileMode>posix</tarLongFileMode>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ <dependencies>
+ <dependency>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>jcl-over-slf4j</artifactId>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>jul-to-slf4j</artifactId>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>log4j-over-slf4j</artifactId>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-runtime</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-bootstrap</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-resources</artifactId>
+ <classifier>resources</classifier>
+ <scope>runtime</scope>
+ <type>zip</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-docs</artifactId>
+ <classifier>resources</classifier>
+ <scope>runtime</scope>
+ <type>zip</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-framework-nar</artifactId>
+ <type>nar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-provenance-repository-nar</artifactId>
+ <type>nar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-standard-services-api-nar</artifactId>
+ <type>nar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-ssl-context-service-nar</artifactId>
+ <type>nar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-distributed-cache-services-nar</artifactId>
+ <type>nar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-standard-nar</artifactId>
+ <type>nar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-jetty-bundle</artifactId>
+ <type>nar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-update-attribute-nar</artifactId>
+ <type>nar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-hadoop-libraries-nar</artifactId>
+ <type>nar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-hadoop-nar</artifactId>
+ <type>nar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-kafka-nar</artifactId>
+ <type>nar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-http-context-map-nar</artifactId>
+ <type>nar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-kite-nar</artifactId>
+ <type>nar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-social-media-nar</artifactId>
+ <version>0.1.0-incubating-SNAPSHOT</version>
+ <type>nar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-hl7-nar</artifactId>
+ <version>0.1.0-incubating-SNAPSHOT</version>
+ <type>nar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-language-translation-nar</artifactId>
+ <version>0.1.0-incubating-SNAPSHOT</version>
+ <type>nar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.nifi</groupId>
+ <artifactId>nifi-geo-nar</artifactId>
+ <version>0.1.0-incubating-SNAPSHOT</version>
+ <type>nar</type>
+ </dependency>
+ </dependencies>
- <properties>
- <!--Wrapper Properties -->
- <nifi.wrapper.jvm.heap.initial.mb>256</nifi.wrapper.jvm.heap.initial.mb>
- <nifi.wrapper.jvm.heap.max.mb>512</nifi.wrapper.jvm.heap.max.mb>
- <nifi.initial.permgen.size.mb>128</nifi.initial.permgen.size.mb>
- <nifi.max.permgen.size.mb>128</nifi.max.permgen.size.mb>
- <nifi.wrapper.logfile.maxsize>10m</nifi.wrapper.logfile.maxsize>
- <nifi.wrapper.logfile.maxfiles>10</nifi.wrapper.logfile.maxfiles>
+ <properties>
+ <!--Wrapper Properties -->
+ <nifi.wrapper.jvm.heap.initial.mb>256</nifi.wrapper.jvm.heap.initial.mb>
+ <nifi.wrapper.jvm.heap.max.mb>512</nifi.wrapper.jvm.heap.max.mb>
+ <nifi.initial.permgen.size.mb>128</nifi.initial.permgen.size.mb>
+ <nifi.max.permgen.size.mb>128</nifi.max.permgen.size.mb>
+ <nifi.wrapper.logfile.maxsize>10m</nifi.wrapper.logfile.maxsize>
+ <nifi.wrapper.logfile.maxfiles>10</nifi.wrapper.logfile.maxfiles>
- <!-- nifi.properties: core properties -->
- <nifi.version>${project.version}</nifi.version>
- <nifi.flowcontroller.autoResumeState>true</nifi.flowcontroller.autoResumeState>
- <nifi.flowcontroller.graceful.shutdown.period>10 sec</nifi.flowcontroller.graceful.shutdown.period>
- <nifi.flowservice.writedelay.interval>500 ms</nifi.flowservice.writedelay.interval>
- <nifi.administrative.yield.duration>30 sec</nifi.administrative.yield.duration>
- <nifi.bored.yield.duration>10 millis</nifi.bored.yield.duration>
+ <!-- nifi.properties: core properties -->
+ <nifi.version>${project.version}</nifi.version>
+ <nifi.flowcontroller.autoResumeState>true</nifi.flowcontroller.autoResumeState>
+ <nifi.flowcontroller.graceful.shutdown.period>10 sec</nifi.flowcontroller.graceful.shutdown.period>
+ <nifi.flowservice.writedelay.interval>500 ms</nifi.flowservice.writedelay.interval>
+ <nifi.administrative.yield.duration>30 sec</nifi.administrative.yield.duration>
+ <nifi.bored.yield.duration>10 millis</nifi.bored.yield.duration>
- <nifi.flow.configuration.file>./conf/flow.xml.gz</nifi.flow.configuration.file>
- <nifi.flow.configuration.archive.dir>./conf/archive/</nifi.flow.configuration.archive.dir>
- <nifi.authority.provider.configuration.file>./conf/authority-providers.xml</nifi.authority.provider.configuration.file>
- <nifi.templates.directory>./conf/templates</nifi.templates.directory>
- <nifi.database.directory>./database_repository</nifi.database.directory>
+ <nifi.flow.configuration.file>./conf/flow.xml.gz</nifi.flow.configuration.file>
+ <nifi.flow.configuration.archive.dir>./conf/archive/</nifi.flow.configuration.archive.dir>
+ <nifi.authority.provider.configuration.file>./conf/authority-providers.xml</nifi.authority.provider.configuration.file>
+ <nifi.templates.directory>./conf/templates</nifi.templates.directory>
+ <nifi.database.directory>./database_repository</nifi.database.directory>
- <nifi.flowfile.repository.implementation>org.apache.nifi.controller.repository.WriteAheadFlowFileRepository</nifi.flowfile.repository.implementation>
- <nifi.flowfile.repository.directory>./flowfile_repository</nifi.flowfile.repository.directory>
- <nifi.flowfile.repository.partitions>256</nifi.flowfile.repository.partitions>
- <nifi.flowfile.repository.checkpoint.interval>2 mins</nifi.flowfile.repository.checkpoint.interval>
- <nifi.flowfile.repository.always.sync>false</nifi.flowfile.repository.always.sync>
- <nifi.swap.manager.implementation>org.apache.nifi.controller.FileSystemSwapManager</nifi.swap.manager.implementation>
- <nifi.queue.swap.threshold>20000</nifi.queue.swap.threshold>
- <nifi.swap.in.period>5 sec</nifi.swap.in.period>
- <nifi.swap.in.threads>1</nifi.swap.in.threads>
- <nifi.swap.out.period>5 sec</nifi.swap.out.period>
- <nifi.swap.out.threads>4</nifi.swap.out.threads>
+ <nifi.flowfile.repository.implementation>org.apache.nifi.controller.repository.WriteAheadFlowFileRepository</nifi.flowfile.repository.implementation>
+ <nifi.flowfile.repository.directory>./flowfile_repository</nifi.flowfile.repository.directory>
+ <nifi.flowfile.repository.partitions>256</nifi.flowfile.repository.partitions>
+ <nifi.flowfile.repository.checkpoint.interval>2 mins</nifi.flowfile.repository.checkpoint.interval>
+ <nifi.flowfile.repository.always.sync>false</nifi.flowfile.repository.always.sync>
+ <nifi.swap.manager.implementation>org.apache.nifi.controller.FileSystemSwapManager</nifi.swap.manager.implementation>
+ <nifi.queue.swap.threshold>20000</nifi.queue.swap.threshold>
+ <nifi.swap.in.period>5 sec</nifi.swap.in.period>
+ <nifi.swap.in.threads>1</nifi.swap.in.threads>
+ <nifi.swap.out.period>5 sec</nifi.swap.out.period>
+ <nifi.swap.out.threads>4</nifi.swap.out.threads>
- <nifi.content.repository.implementation>org.apache.nifi.controller.repository.FileSystemRepository</nifi.content.repository.implementation>
- <nifi.content.claim.max.appendable.size>10 MB</nifi.content.claim.max.appendable.size>
- <nifi.content.claim.max.flow.files>100</nifi.content.claim.max.flow.files>
- <nifi.content.repository.directory.default>./content_repository</nifi.content.repository.directory.default>
- <nifi.content.repository.archive.max.retention.period />
- <nifi.content.repository.archive.max.usage.percentage />
- <nifi.content.repository.archive.enabled>false</nifi.content.repository.archive.enabled>
- <nifi.content.repository.always.sync>false</nifi.content.repository.always.sync>
- <nifi.content.viewer.url />
+ <nifi.content.repository.implementation>org.apache.nifi.controller.repository.FileSystemRepository</nifi.content.repository.implementation>
+ <nifi.content.claim.max.appendable.size>10 MB</nifi.content.claim.max.appendable.size>
+ <nifi.content.claim.max.flow.files>100</nifi.content.claim.max.flow.files>
+ <nifi.content.repository.directory.default>./content_repository</nifi.content.repository.directory.default>
+ <nifi.content.repository.archive.max.retention.period />
+ <nifi.content.repository.archive.max.usage.percentage />
+ <nifi.content.repository.archive.enabled>false</nifi.content.repository.archive.enabled>
+ <nifi.content.repository.always.sync>false</nifi.content.repository.always.sync>
+ <nifi.content.viewer.url />
- <nifi.restore.directory />
- <nifi.ui.banner.text />
- <nifi.ui.autorefresh.interval>30 sec</nifi.ui.autorefresh.interval>
- <nifi.nar.library.directory>./lib</nifi.nar.library.directory>
- <nifi.nar.working.directory>./work/nar/</nifi.nar.working.directory>
- <nifi.documentation.working.directory>./work/docs/components</nifi.documentation.working.directory>
+ <nifi.restore.directory />
+ <nifi.ui.banner.text />
+ <nifi.ui.autorefresh.interval>30 sec</nifi.ui.autorefresh.interval>
+ <nifi.nar.library.directory>./lib</nifi.nar.library.directory>
+ <nifi.nar.working.directory>./work/nar/</nifi.nar.working.directory>
+ <nifi.documentation.working.directory>./work/docs/components</nifi.documentation.working.directory>
- <nifi.sensitive.props.algorithm>PBEWITHMD5AND256BITAES-CBC-OPENSSL</nifi.sensitive.props.algorithm>
- <nifi.sensitive.props.provider>BC</nifi.sensitive.props.provider>
- <nifi.h2.url.append>;LOCK_TIMEOUT=25000;WRITE_DELAY=0;AUTO_SERVER=FALSE</nifi.h2.url.append>
+ <nifi.sensitive.props.algorithm>PBEWITHMD5AND256BITAES-CBC-OPENSSL</nifi.sensitive.props.algorithm>
+ <nifi.sensitive.props.provider>BC</nifi.sensitive.props.provider>
+ <nifi.h2.url.append>;LOCK_TIMEOUT=25000;WRITE_DELAY=0;AUTO_SERVER=FALSE</nifi.h2.url.append>
- <nifi.remote.input.socket.port>9990</nifi.remote.input.socket.port>
+ <nifi.remote.input.socket.port>9990</nifi.remote.input.socket.port>
- <!-- persistent provenance repository properties -->
- <nifi.provenance.repository.implementation>org.apache.nifi.provenance.PersistentProvenanceRepository</nifi.provenance.repository.implementation>
- <nifi.provenance.repository.directory.default>./provenance_repository</nifi.provenance.repository.directory.default>
- <nifi.provenance.repository.max.storage.time>24 hours</nifi.provenance.repository.max.storage.time>
- <nifi.provenance.repository.max.storage.size>1 GB</nifi.provenance.repository.max.storage.size>
- <nifi.provenance.repository.rollover.time>5 mins</nifi.provenance.repository.rollover.time>
- <nifi.provenance.repository.rollover.size>100 MB</nifi.provenance.repository.rollover.size>
- <nifi.provenance.repository.query.threads>2</nifi.provenance.repository.query.threads>
- <nifi.provenance.repository.compress.on.rollover>true</nifi.provenance.repository.compress.on.rollover>
- <nifi.provenance.repository.indexed.fields>EventType, FlowFileUUID,
- Filename, ProcessorID</nifi.provenance.repository.indexed.fields>
- <nifi.provenance.repository.indexed.attributes />
- <nifi.provenance.repository.index.shard.size>500 MB</nifi.provenance.repository.index.shard.size>
- <nifi.provenance.repository.always.sync>false</nifi.provenance.repository.always.sync>
- <nifi.provenance.repository.journal.count>16</nifi.provenance.repository.journal.count>
+ <!-- persistent provenance repository properties -->
+ <nifi.provenance.repository.implementation>org.apache.nifi.provenance.PersistentProvenanceRepository</nifi.provenance.repository.implementation>
+ <nifi.provenance.repository.directory.default>./provenance_repository</nifi.provenance.repository.directory.default>
+ <nifi.provenance.repository.max.storage.time>24 hours</nifi.provenance.repository.max.storage.time>
+ <nifi.provenance.repository.max.storage.size>1 GB</nifi.provenance.repository.max.storage.size>
+ <nifi.provenance.repository.rollover.time>5 mins</nifi.provenance.repository.rollover.time>
+ <nifi.provenance.repository.rollover.size>100 MB</nifi.provenance.repository.rollover.size>
+ <nifi.provenance.repository.query.threads>2</nifi.provenance.repository.query.threads>
+ <nifi.provenance.repository.compress.on.rollover>true</nifi.provenance.repository.compress.on.rollover>
+ <nifi.provenance.repository.indexed.fields>EventType, FlowFileUUID,
+ Filename, ProcessorID</nifi.provenance.repository.indexed.fields>
+ <nifi.provenance.repository.indexed.attributes />
+ <nifi.provenance.repository.index.shard.size>500 MB</nifi.provenance.repository.index.shard.size>
+ <nifi.provenance.repository.always.sync>false</nifi.provenance.repository.always.sync>
+ <nifi.provenance.repository.journal.count>16</nifi.provenance.repository.journal.count>
- <!-- volatile provenance repository properties -->
- <nifi.provenance.repository.buffer.size>100000</nifi.provenance.repository.buffer.size>
+ <!-- volatile provenance repository properties -->
+ <nifi.provenance.repository.buffer.size>100000</nifi.provenance.repository.buffer.size>
- <!-- Component status repository properties -->
- <nifi.components.status.repository.implementation>org.apache.nifi.controller.status.history.VolatileComponentStatusRepository</nifi.components.status.repository.implementation>
- <nifi.components.status.repository.buffer.size>288</nifi.components.status.repository.buffer.size>
- <nifi.components.status.snapshot.frequency>5 mins</nifi.components.status.snapshot.frequency>
+ <!-- Component status repository properties -->
+ <nifi.components.status.repository.implementation>org.apache.nifi.controller.status.history.VolatileComponentStatusRepository</nifi.components.status.repository.implementation>
+ <nifi.components.status.repository.buffer.size>288</nifi.components.status.repository.buffer.size>
+ <nifi.components.status.snapshot.frequency>5 mins</nifi.components.status.snapshot.frequency>
- <!-- nifi.properties: web properties -->
- <nifi.web.war.directory>./lib</nifi.web.war.directory>
- <nifi.web.http.host />
- <nifi.web.http.port>8080</nifi.web.http.port>
- <nifi.web.https.host />
- <nifi.web.https.port />
- <nifi.jetty.work.dir>./work/jetty</nifi.jetty.work.dir>
- <nifi.web.jetty.threads>200</nifi.web.jetty.threads>
+ <!-- nifi.properties: web properties -->
+ <nifi.web.war.directory>./lib</nifi.web.war.directory>
+ <nifi.web.http.host />
+ <nifi.web.http.port>8080</nifi.web.http.port>
+ <nifi.web.https.host />
+ <nifi.web.https.port />
+ <nifi.jetty.work.dir>./work/jetty</nifi.jetty.work.dir>
+ <nifi.web.jetty.threads>200</nifi.web.jetty.threads>
- <!-- nifi.properties: security properties -->
- <nifi.security.keystore />
- <nifi.security.keystoreType />
- <nifi.security.keystorePasswd />
- <nifi.security.keyPasswd />
- <nifi.security.truststore />
- <nifi.security.truststoreType />
- <nifi.security.truststorePasswd />
- <nifi.security.needClientAuth />
- <nifi.security.authorizedUsers.file>./conf/authorized-users.xml</nifi.security.authorizedUsers.file>
- <nifi.security.user.credential.cache.duration>24 hours</nifi.security.user.credential.cache.duration>
- <nifi.security.user.authority.provider>file-provider</nifi.security.user.authority.provider>
- <nifi.security.x509.principal.extractor />
- <nifi.security.support.new.account.requests />
- <nifi.security.ocsp.responder.url />
- <nifi.security.ocsp.responder.certificate />
+ <!-- nifi.properties: security properties -->
+ <nifi.security.keystore />
+ <nifi.security.keystoreType />
+ <nifi.security.keystorePasswd />
+ <nifi.security.keyPasswd />
+ <nifi.security.truststore />
+ <nifi.security.truststoreType />
+ <nifi.security.truststorePasswd />
+ <nifi.security.needClientAuth />
+ <nifi.security.authorizedUsers.file>./conf/authorized-users.xml</nifi.security.authorizedUsers.file>
+ <nifi.security.user.credential.cache.duration>24 hours</nifi.security.user.credential.cache.duration>
+ <nifi.security.user.authority.provider>file-provider</nifi.security.user.authority.provider>
+ <nifi.security.x509.principal.extractor />
+ <nifi.security.support.new.account.requests />
+ <nifi.security.ocsp.responder.url />
+ <nifi.security.ocsp.responder.certificate />
- <!-- nifi.properties: cluster common properties (cluster manager and nodes
- must have same values) -->
- <nifi.cluster.protocol.heartbeat.interval>5 sec</nifi.cluster.protocol.heartbeat.interval>
- <nifi.cluster.protocol.is.secure>false</nifi.cluster.protocol.is.secure>
- <nifi.cluster.protocol.socket.timeout>30 sec</nifi.cluster.protocol.socket.timeout>
- <nifi.cluster.protocol.connection.handshake.timeout>45 sec</nifi.cluster.protocol.connection.handshake.timeout>
- <nifi.cluster.protocol.use.multicast>false</nifi.cluster.protocol.use.multicast>
- <nifi.cluster.protocol.multicast.address />
- <nifi.cluster.protocol.multicast.port />
- <nifi.cluster.protocol.multicast.service.broadcast.delay>500 ms</nifi.cluster.protocol.multicast.service.broadcast.delay>
- <nifi.cluster.protocol.multicast.service.locator.attempts>3</nifi.cluster.protocol.multicast.service.locator.attempts>
- <nifi.cluster.protocol.multicast.service.locator.attempts.delay>1 sec</nifi.cluster.protocol.multicast.service.locator.attempts.delay>
+ <!-- nifi.properties: cluster common properties (cluster manager and nodes
+ must have same values) -->
+ <nifi.cluster.protocol.heartbeat.interval>5 sec</nifi.cluster.protocol.heartbeat.interval>
+ <nifi.cluster.protocol.is.secure>false</nifi.cluster.protocol.is.secure>
+ <nifi.cluster.protocol.socket.timeout>30 sec</nifi.cluster.protocol.socket.timeout>
+ <nifi.cluster.protocol.connection.handshake.timeout>45 sec</nifi.cluster.protocol.connection.handshake.timeout>
+ <nifi.cluster.protocol.use.multicast>false</nifi.cluster.protocol.use.multicast>
+ <nifi.cluster.protocol.multicast.address />
+ <nifi.cluster.protocol.multicast.port />
+ <nifi.cluster.protocol.multicast.service.broadcast.delay>500 ms</nifi.cluster.protocol.multicast.service.broadcast.delay>
+ <nifi.cluster.protocol.multicast.service.locator.attempts>3</nifi.cluster.protocol.multicast.service.locator.attempts>
+ <nifi.cluster.protocol.multicast.service.locator.attempts.delay>1 sec</nifi.cluster.protocol.multicast.service.locator.attempts.delay>
- <!-- nifi.properties: cluster node properties (only configure for cluster
- nodes) -->
- <nifi.cluster.is.node>false</nifi.cluster.is.node>
- <nifi.cluster.node.address />
- <nifi.cluster.node.protocol.port />
- <nifi.cluster.node.protocol.threads>2</nifi.cluster.node.protocol.threads>
- <nifi.cluster.node.unicast.manager.address />
- <nifi.cluster.node.unicast.manager.protocol.port />
+ <!-- nifi.properties: cluster node properties (only configure for cluster
+ nodes) -->
+ <nifi.cluster.is.node>false</nifi.cluster.is.node>
+ <nifi.cluster.node.address />
+ <nifi.cluster.node.protocol.port />
+ <nifi.cluster.node.protocol.threads>2</nifi.cluster.node.protocol.threads>
+ <nifi.cluster.node.unicast.manager.address />
+ <nifi.cluster.node.unicast.manager.protocol.port />
- <!-- nifi.properties: cluster manager properties (only configure for cluster
- manager) -->
- <nifi.cluster.is.manager>false</nifi.cluster.is.manager>
- <nifi.cluster.manager.address />
- <nifi.cluster.manager.protocol.port />
- <nifi.cluster.manager.node.firewall.file />
- <nifi.cluster.manager.node.event.history.size>10</nifi.cluster.manager.node.event.history.size>
- <nifi.cluster.manager.node.api.connection.timeout>30 sec</nifi.cluster.manager.node.api.connection.timeout>
- <nifi.cluster.manager.node.api.read.timeout>30 sec</nifi.cluster.manager.node.api.read.timeout>
- <nifi.cluster.manager.node.api.request.threads>10</nifi.cluster.manager.node.api.request.threads>
- <nifi.cluster.manager.flow.retrieval.delay>5 sec</nifi.cluster.manager.flow.retrieval.delay>
- <nifi.cluster.manager.protocol.threads>10</nifi.cluster.manager.protocol.threads>
- <nifi.cluster.manager.safemode.duration>0 sec</nifi.cluster.manager.safemode.duration>
- </properties>
- <profiles>
- <profile>
- <id>rpm</id>
- <activation>
- <activeByDefault>false</activeByDefault>
- </activation>
- <build>
- <plugins>
- <plugin>
- <artifactId>maven-dependency-plugin</artifactId>
- <executions>
- <execution>
- <id>unpack-shared-resources</id>
- <goals>
- <goal>unpack-dependencies</goal>
- </goals>
- <phase>generate-resources</phase>
- <configuration>
- <outputDirectory>${project.build.directory}/generated-resources</outputDirectory>
- <includeArtifactIds>nifi-resources</includeArtifactIds>
- <includeGroupIds>org.apache.nifi</includeGroupIds>
- <excludeTransitive>false</excludeTransitive>
- </configuration>
- </execution>
- <execution>
- <id>unpack-docs</id>
- <goals>
- <goal>unpack-dependencies</goal>
- </goals>
- <phase>generate-resources</phase>
- <configuration>
- <outputDirectory>${project.build.directory}/generated-docs</outputDirectory>
- <includeArtifactIds>nifi-docs</includeArtifactIds>
- <includeGroupIds>org.apache.nifi</includeGroupIds>
- <excludeTransitive>false</excludeTransitive>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>rpm-maven-plugin</artifactId>
- <configuration>
- <summary>Apache NiFi (incubating)</summary>
- <description>Apache Nifi (incubating) is dataflow system based on
- the Flow-Based Programming concepts.</description>
- <license>Apache License, Version 2.0 and others (see included
- LICENSE file)</license>
- <url>http://nifi.incubator.apache.org</url>
- <group>Utilities</group>
- <prefix>/opt/nifi</prefix>
- <defineStatements>
- <defineStatement>_use_internal_dependency_generator 0</defineStatement>
- </defineStatements>
- <defaultDirmode>750</defaultDirmode>
- <defaultFilemode>640</defaultFilemode>
- <defaultUsername>root</defaultUsername>
- <defaultGroupname>root</defaultGroupname>
- </configuration>
- <executions>
- <execution>
- <id>build-bin-rpm</id>
- <goals>
- <goal>attached-rpm</goal>
- </goals>
- <configuration>
- <classifier>bin</classifier>
- <provides>
- <provide>nifi</provide>
- </provides>
- <mappings>
- <mapping>
- <directory>/opt/nifi/nifi-${project.version}</directory>
- </mapping>
- <mapping>
- <directory>/opt/nifi/nifi-${project.version}</directory>
- <sources>
- <source>
- <location>./LICENSE</location>
- </source>
- <source>
- <location>./NOTICE</location>
- </source>
- <source>
- <location>../DISCLAIMER</location>
- </source>
- <source>
- <location>./README.md</location>
- <destination>README</destination>
- </source>
- </sources>
- </mapping>
- <mapping>
- <directory>/opt/nifi/nifi-${project.version}/bin</directory>
- <filemode>750</filemode>
- <sources>
- <source>
- <location>${project.build.directory}/generated-resources/bin/nifi.sh</location>
- <destination>nifi.sh</destination>
- <filter>true</filter>
- </source>
- </sources>
- </mapping>
- <mapping>
- <directory>/opt/nifi/nifi-${project.version}/conf</directory>
- <configuration>true</configuration>
- <sources>
- <source>
- <location>${project.build.directory}/generated-resources/conf</location>
- <filter>true</filter>
- </source>
- </sources>
- </mapping>
- <mapping>
- <directory>/opt/nifi/nifi-${project.version}/lib</directory>
- <dependency>
- <excludes>
- <exclude>org.apache.nifi:nifi-bootstrap</exclude>
- <exclude>org.apache.nifi:nifi-resources</exclude>
- <exclude>org.apache.nifi:nifi-docs</exclude>
- </excludes>
- </dependency>
- </mapping>
- <mapping>
- <directory>/opt/nifi/nifi-${project.version}/lib/bootstrap</directory>
- <dependency>
- <includes>
- <include>org.apache.nifi:nifi-bootstrap</include>
- </includes>
- </dependency>
- </mapping>
- <mapping>
- <directory>/opt/nifi/nifi-${project.version}/docs</directory>
- <sources>
- <source>
- <location>${project.build.directory}/generated-docs</location>
- </source>
- </sources>
- </mapping>
- </mappings>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- </profile>
- </profiles>
+ <!-- nifi.properties: cluster manager properties (only configure for cluster
+ manager) -->
+ <nifi.cluster.is.manager>false</nifi.cluster.is.manager>
+ <nifi.cluster.manager.address />
+ <nifi.cluster.manager.protocol.port />
+ <nifi.cluster.manager.node.firewall.file />
+ <nifi.cluster.manager.node.event.history.size>10</nifi.cluster.manager.node.event.history.size>
+ <nifi.cluster.manager.node.api.connection.timeout>30 sec</nifi.cluster.manager.node.api.connection.timeout>
+ <nifi.cluster.manager.node.api.read.timeout>30 sec</nifi.cluster.manager.node.api.read.timeout>
+ <nifi.cluster.manager.node.api.request.threads>10</nifi.cluster.manager.node.api.request.threads>
+ <nifi.cluster.manager.flow.retrieval.delay>5 sec</nifi.cluster.manager.flow.retrieval.delay>
+ <nifi.cluster.manager.protocol.threads>10</nifi.cluster.manager.protocol.threads>
+ <nifi.cluster.manager.safemode.duration>0 sec</nifi.cluster.manager.safemode.duration>
+ </properties>
+ <profiles>
+ <profile>
+ <id>rpm</id>
+ <activation>
+ <activeByDefault>false</activeByDefault>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>unpack-shared-resources</id>
+ <goals>
+ <goal>unpack-dependencies</goal>
+ </goals>
+ <phase>generate-resources</phase>
+ <configuration>
+ <outputDirectory>${project.build.directory}/generated-resources</outputDirectory>
+ <includeArtifactIds>nifi-resources</includeArtifactIds>
+ <includeGroupIds>org.apache.nifi</includeGroupIds>
+ <excludeTransitive>false</excludeTransitive>
+ </configuration>
+ </execution>
+ <execution>
+ <id>unpack-docs</id>
+ <goals>
+ <goal>unpack-dependencies</goal>
+ </goals>
+ <phase>generate-resources</phase>
+ <configuration>
+ <outputDirectory>${project.build.directory}/generated-docs</outputDirectory>
+ <includeArtifactIds>nifi-docs</includeArtifactIds>
+ <includeGroupIds>org.apache.nifi</includeGroupIds>
+ <excludeTransitive>false</excludeTransitive>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>rpm-maven-plugin</artifactId>
+ <configuration>
+ <summary>Apache NiFi (incubating)</summary>
+ <description>Apache Nifi (incubating) is dataflow system based on
+ the Flow-Based Programming concepts.</description>
+ <license>Apache License, Version 2.0 and others (see included
+ LICENSE file)</license>
+ <url>http://nifi.incubator.apache.org</url>
+ <group>Utilities</group>
+ <prefix>/opt/nifi</prefix>
+ <defineStatements>
+ <defineStatement>_use_internal_dependency_generator 0</defineStatement>
+ </defineStatements>
+ <defaultDirmode>750</defaultDirmode>
+ <defaultFilemode>640</defaultFilemode>
+ <defaultUsername>root</defaultUsername>
+ <defaultGroupname>root</defaultGroupname>
+ </configuration>
+ <executions>
+ <execution>
+ <id>build-bin-rpm</id>
+ <goals>
+ <goal>attached-rpm</goal>
+ </goals>
+ <configuration>
+ <classifier>bin</classifier>
+ <provides>
+ <provide>nifi</provide>
+ </provides>
+ <mappings>
+ <mapping>
+ <directory>/opt/nifi/nifi-${project.version}</directory>
+ </mapping>
+ <mapping>
+ <directory>/opt/nifi/nifi-${project.version}</directory>
+ <sources>
+ <source>
+ <location>./LICENSE</location>
+ </source>
+ <source>
+ <location>./NOTICE</location>
+ </source>
+ <source>
+ <location>../DISCLAIMER</location>
+ </source>
+ <source>
+ <location>./README.md</location>
+ <destination>README</destination>
+ </source>
+ </sources>
+ </mapping>
+ <mapping>
+ <directory>/opt/nifi/nifi-${project.version}/bin</directory>
+ <filemode>750</filemode>
+ <sources>
+ <source>
+ <location>${project.build.directory}/generated-resources/bin/nifi.sh</location>
+ <destination>nifi.sh</destination>
+ <filter>true</filter>
+ </source>
+ </sources>
+ </mapping>
+ <mapping>
+ <directory>/opt/nifi/nifi-${project.version}/conf</directory>
+ <configuration>true</configuration>
+ <sources>
+ <source>
+ <location>${project.build.directory}/generated-resources/conf</location>
+ <filter>true</filter>
+ </source>
+ </sources>
+ </mapping>
+ <mapping>
+ <directory>/opt/nifi/nifi-${project.version}/lib</directory>
+ <dependency>
+ <excludes>
+ <exclude>org.apache.nifi:nifi-bootstrap</exclude>
+ <exclude>org.apache.nifi:nifi-resources</exclude>
+ <exclude>org.apache.nifi:nifi-docs</exclude>
+ </excludes>
+ </dependency>
+ </mapping>
+ <mapping>
+ <directory>/opt/nifi/nifi-${project.version}/lib/bootstrap</directory>
+ <dependency>
+ <includes>
+ <include>org.apache.nifi:nifi-bootstrap</include>
+ </includes>
+ </dependency>
+ </mapping>
+ <mapping>
+ <directory>/opt/nifi/nifi-${project.version}/docs</directory>
+ <sources>
+ <source>
+ <location>${project.build.directory}/generated-docs</location>
+ </source>
+ </sources>
+ </mapping>
+ </mappings>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
</project>
http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/060a1e0d/nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-nar/src/main/resources/META-INF/NOTICE
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-nar/src/main/resources/META-INF/NOTICE b/nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-nar/src/main/resources/META-INF/NOTICE
new file mode 100644
index 0000000..64d4975
--- /dev/null
+++ b/nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-nar/src/main/resources/META-INF/NOTICE
@@ -0,0 +1,74 @@
+nifi-aws-nar
+Copyright 2015 The Apache Software Foundation
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
+
+******************
+Apache Software License v2
+******************
+
+The following binary components are provided under the Apache Software License v2
+
+ (ASLv2) Apache HttpComponents
+ The following NOTICE information applies:
+ Apache HttpClient
+ Copyright 1999-2014 The Apache Software Foundation
+
+ Apache HttpCore
+ Copyright 2005-2014 The Apache Software Foundation
+
+ This project contains annotations derived from JCIP-ANNOTATIONS
+ Copyright (c) 2005 Brian Goetz and Tim Peierls. See http://www.jcip.net
+
+ (ASLv2) Joda Time
+ The following NOTICE information applies:
+ This product includes software developed by
+ Joda.org (http://www.joda.org/).
+
+ (ASLv2) Apache Commons Codec
+ The following NOTICE information applies:
+ Apache Commons Codec
+ Copyright 2002-2014 The Apache Software Foundation
+
+ src/test/org/apache/commons/codec/language/DoubleMetaphoneTest.java
+ contains test data from http://aspell.net/test/orig/batch0.tab.
+ Copyright (C) 2002 Kevin Atkinson (kevina@gnu.org)
+
+ ===============================================================================
+
+ The content of package org.apache.commons.codec.language.bm has been translated
+ from the original php source code available at http://stevemorse.org/phoneticinfo.htm
+ with permission from the original authors.
+ Original source copyright:
+ Copyright (c) 2008 Alexander Beider & Stephen P. Morse.
+
+ (ASLv2) Apache Commons Logging
+ The following NOTICE information applies:
+ Apache Commons Logging
+ Copyright 2003-2013 The Apache Software Foundation
+
+ (ASLv2) Apache Commons Lang
+ The following NOTICE information applies:
+ Apache Commons Lang
+ Copyright 2001-2014 The Apache Software Foundation
+
+ This product includes software from the Spring Framework,
+ under the Apache License 2.0 (see: StringUtils.containsWhitespace())
+
+ (ASLv2) Amazon Web Services SDK
+ The following NOTICE information applies:
+ Copyright 2010-2014 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+
+ This product includes software developed by
+ Amazon Technologies, Inc (http://www.amazon.com/).
+
+ **********************
+ THIRD PARTY COMPONENTS
+ **********************
+ This software includes third party software subject to the following copyrights:
+ - XML parsing and utility functions from JetS3t - Copyright 2006-2009 James Murty.
+ - JSON parsing and utility functions from JSON.org - Copyright 2002 JSON.org.
+ - PKCS#1 PEM encoded private key parsing and utility functions from oauth.googlecode.com - Copyright 1998-2010 AOL Inc.
+
+
http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/060a1e0d/nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/pom.xml
----------------------------------------------------------------------
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 2270773..fdc8718 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
@@ -35,9 +35,9 @@
<artifactId>nifi-processor-utils</artifactId>
</dependency>
<dependency>
- <groupId>com.amazonaws</groupId>
- <artifactId>aws-java-sdk</artifactId>
- </dependency>
+ <groupId>com.amazonaws</groupId>
+ <artifactId>aws-java-sdk</artifactId>
+ </dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
@@ -55,4 +55,17 @@
<scope>test</scope>
</dependency>
</dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.rat</groupId>
+ <artifactId>apache-rat-plugin</artifactId>
+ <configuration>
+ <excludes>
+ <exclude>src/test/resources/hello.txt</exclude>
+ </excludes>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
</project>
http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/060a1e0d/nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/AbstractAWSProcessor.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/AbstractAWSProcessor.java b/nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/AbstractAWSProcessor.java
index 11c6a9d..a781ff9 100644
--- a/nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/AbstractAWSProcessor.java
+++ b/nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/AbstractAWSProcessor.java
@@ -58,56 +58,54 @@ public abstract class AbstractAWSProcessor<ClientType extends AmazonWebServiceCl
new HashSet<>(Arrays.asList(REL_SUCCESS, REL_FAILURE)));
public static final PropertyDescriptor CREDENTAILS_FILE = new PropertyDescriptor.Builder()
- .name("Credentials File")
- .expressionLanguageSupported(false)
- .required(false)
- .addValidator(StandardValidators.FILE_EXISTS_VALIDATOR)
- .build();
+ .name("Credentials File")
+ .expressionLanguageSupported(false)
+ .required(false)
+ .addValidator(StandardValidators.FILE_EXISTS_VALIDATOR)
+ .build();
public static final PropertyDescriptor ACCESS_KEY = new PropertyDescriptor.Builder()
- .name("Access Key")
- .expressionLanguageSupported(false)
- .required(false)
- .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
- .sensitive(true)
- .build();
+ .name("Access Key")
+ .expressionLanguageSupported(false)
+ .required(false)
+ .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
+ .sensitive(true)
+ .build();
public static final PropertyDescriptor SECRET_KEY = new PropertyDescriptor.Builder()
- .name("Secret Key")
- .expressionLanguageSupported(false)
- .required(false)
- .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
- .sensitive(true)
- .build();
+ .name("Secret Key")
+ .expressionLanguageSupported(false)
+ .required(false)
+ .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
+ .sensitive(true)
+ .build();
public static final PropertyDescriptor REGION = new PropertyDescriptor.Builder()
- .name("Region")
- .required(true)
- .allowableValues(getAvailableRegions())
- .defaultValue(createAllowableValue(Regions.DEFAULT_REGION).getValue())
- .build();
+ .name("Region")
+ .required(true)
+ .allowableValues(getAvailableRegions())
+ .defaultValue(createAllowableValue(Regions.DEFAULT_REGION).getValue())
+ .build();
public static final PropertyDescriptor TIMEOUT = new PropertyDescriptor.Builder()
- .name("Communications Timeout")
- .required(true)
- .addValidator(StandardValidators.TIME_PERIOD_VALIDATOR)
- .defaultValue("30 secs")
- .build();
-
+ .name("Communications Timeout")
+ .required(true)
+ .addValidator(StandardValidators.TIME_PERIOD_VALIDATOR)
+ .defaultValue("30 secs")
+ .build();
private volatile ClientType client;
-
private static AllowableValue createAllowableValue(final Regions regions) {
return new AllowableValue(regions.getName(), regions.getName(), regions.getName());
}
-
+
private static AllowableValue[] getAvailableRegions() {
final List<AllowableValue> values = new ArrayList<>();
- for ( final Regions regions : Regions.values() ) {
+ for (final Regions regions : Regions.values()) {
values.add(createAllowableValue(regions));
}
-
+
return (AllowableValue[]) values.toArray(new AllowableValue[values.size()]);
}
-
+
@Override
public Set<Relationship> getRelationships() {
return relationships;
@@ -116,52 +114,50 @@ public abstract class AbstractAWSProcessor<ClientType extends AmazonWebServiceCl
@Override
protected Collection<ValidationResult> customValidate(final ValidationContext validationContext) {
final List<ValidationResult> problems = new ArrayList<>(super.customValidate(validationContext));
-
+
final boolean accessKeySet = validationContext.getProperty(ACCESS_KEY).isSet();
final boolean secretKeySet = validationContext.getProperty(SECRET_KEY).isSet();
- if ( (accessKeySet && !secretKeySet) || (secretKeySet && !accessKeySet) ) {
+ if ((accessKeySet && !secretKeySet) || (secretKeySet && !accessKeySet)) {
problems.add(new ValidationResult.Builder().input("Access Key").valid(false).explanation("If setting Secret Key or Access Key, must set both").build());
}
-
+
final boolean credentialsFileSet = validationContext.getProperty(CREDENTAILS_FILE).isSet();
- if ( (secretKeySet || accessKeySet) && credentialsFileSet ) {
+ if ((secretKeySet || accessKeySet) && credentialsFileSet) {
problems.add(new ValidationResult.Builder().input("Access Key").valid(false).explanation("Cannot set both Credentials File and Secret Key/Access Key").build());
}
-
+
return problems;
}
-
protected ClientConfiguration createConfiguration(final ProcessContext context) {
final ClientConfiguration config = new ClientConfiguration();
config.setMaxConnections(context.getMaxConcurrentTasks());
config.setMaxErrorRetry(0);
config.setUserAgent("NiFi");
-
+
final int commsTimeout = context.getProperty(TIMEOUT).asTimePeriod(TimeUnit.MILLISECONDS).intValue();
config.setConnectionTimeout(commsTimeout);
config.setSocketTimeout(commsTimeout);
-
+
return config;
}
-
@OnScheduled
public void onScheduled(final ProcessContext context) {
final ClientType awsClient = createClient(context, getCredentials(context), createConfiguration(context));
this.client = awsClient;
-
+
// if the processor supports REGION, get the configured region.
- if ( getSupportedPropertyDescriptors().contains(REGION) ) {
+ if (getSupportedPropertyDescriptors().contains(REGION)) {
final String region = context.getProperty(REGION).getValue();
- if ( region != null ) {
+ if (region != null) {
client.setRegion(Region.getRegion(Regions.fromName(region)));
}
}
}
protected abstract ClientType createClient(final ProcessContext context, final AWSCredentials credentials, final ClientConfiguration config);
-
+
protected ClientType getClient() {
return client;
}
@@ -171,23 +167,22 @@ public abstract class AbstractAWSProcessor<ClientType extends AmazonWebServiceCl
final String secretKey = context.getProperty(SECRET_KEY).getValue();
final String credentialsFile = context.getProperty(CREDENTAILS_FILE).getValue();
-
- if ( credentialsFile != null ) {
+
+ if (credentialsFile != null) {
try {
return new PropertiesCredentials(new File(credentialsFile));
} catch (final IOException ioe) {
throw new ProcessException("Could not read Credentials File", ioe);
}
}
-
- if ( accessKey != null && secretKey != null ) {
+
+ if (accessKey != null && secretKey != null) {
return new BasicAWSCredentials(accessKey, secretKey);
}
-
+
return new AnonymousAWSCredentials();
}
-
protected boolean isEmpty(final String value) {
return value == null || value.trim().equals("");
}
http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/060a1e0d/nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/s3/AbstractS3Processor.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/s3/AbstractS3Processor.java b/nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/s3/AbstractS3Processor.java
index 624015b..76880ef 100644
--- a/nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/s3/AbstractS3Processor.java
+++ b/nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/s3/AbstractS3Processor.java
@@ -39,133 +39,131 @@ import com.amazonaws.services.s3.model.Permission;
public abstract class AbstractS3Processor extends AbstractAWSProcessor<AmazonS3Client> {
public static final PropertyDescriptor FULL_CONTROL_USER_LIST = new PropertyDescriptor.Builder()
- .name("FullControl User List")
- .required(false)
- .expressionLanguageSupported(true)
- .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
- .description("A comma-separated list of Amazon User ID's or E-mail addresses that specifies who should have Full Control for an object")
- .defaultValue("${s3.permissions.full.users}")
- .build();
+ .name("FullControl User List")
+ .required(false)
+ .expressionLanguageSupported(true)
+ .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
+ .description("A comma-separated list of Amazon User ID's or E-mail addresses that specifies who should have Full Control for an object")
+ .defaultValue("${s3.permissions.full.users}")
+ .build();
public static final PropertyDescriptor READ_USER_LIST = new PropertyDescriptor.Builder()
- .name("Read Permission User List")
- .required(false)
- .expressionLanguageSupported(true)
- .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
- .description("A comma-separated list of Amazon User ID's or E-mail addresses that specifies who should have Read Access for an object")
- .defaultValue("${s3.permissions.read.users}")
- .build();
+ .name("Read Permission User List")
+ .required(false)
+ .expressionLanguageSupported(true)
+ .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
+ .description("A comma-separated list of Amazon User ID's or E-mail addresses that specifies who should have Read Access for an object")
+ .defaultValue("${s3.permissions.read.users}")
+ .build();
public static final PropertyDescriptor WRITE_USER_LIST = new PropertyDescriptor.Builder()
- .name("Write Permission User List")
- .required(false)
- .expressionLanguageSupported(true)
- .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
- .description("A comma-separated list of Amazon User ID's or E-mail addresses that specifies who should have Write Access for an object")
- .defaultValue("${s3.permissions.write.users}")
- .build();
+ .name("Write Permission User List")
+ .required(false)
+ .expressionLanguageSupported(true)
+ .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
+ .description("A comma-separated list of Amazon User ID's or E-mail addresses that specifies who should have Write Access for an object")
+ .defaultValue("${s3.permissions.write.users}")
+ .build();
public static final PropertyDescriptor READ_ACL_LIST = new PropertyDescriptor.Builder()
- .name("Read ACL User List")
- .required(false)
- .expressionLanguageSupported(true)
- .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
- .description("A comma-separated list of Amazon User ID's or E-mail addresses that specifies who should have permissions to read the Access Control List for an object")
- .defaultValue("${s3.permissions.readacl.users}")
- .build();
+ .name("Read ACL User List")
+ .required(false)
+ .expressionLanguageSupported(true)
+ .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
+ .description("A comma-separated list of Amazon User ID's or E-mail addresses that specifies who should have permissions to read the Access Control List for an object")
+ .defaultValue("${s3.permissions.readacl.users}")
+ .build();
public static final PropertyDescriptor WRITE_ACL_LIST = new PropertyDescriptor.Builder()
- .name("Write ACL User List")
- .required(false)
- .expressionLanguageSupported(true)
- .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
- .description("A comma-separated list of Amazon User ID's or E-mail addresses that specifies who should have permissions to change the Access Control List for an object")
- .defaultValue("${s3.permissions.writeacl.users}")
- .build();
+ .name("Write ACL User List")
+ .required(false)
+ .expressionLanguageSupported(true)
+ .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
+ .description("A comma-separated list of Amazon User ID's or E-mail addresses that specifies who should have permissions to change the Access Control List for an object")
+ .defaultValue("${s3.permissions.writeacl.users}")
+ .build();
public static final PropertyDescriptor OWNER = new PropertyDescriptor.Builder()
- .name("Owner")
- .required(false)
- .expressionLanguageSupported(true)
- .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
- .description("The Amazon ID to use for the object's owner")
- .defaultValue("${s3.owner}")
- .build();
+ .name("Owner")
+ .required(false)
+ .expressionLanguageSupported(true)
+ .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
+ .description("The Amazon ID to use for the object's owner")
+ .defaultValue("${s3.owner}")
+ .build();
public static final PropertyDescriptor BUCKET = new PropertyDescriptor.Builder()
- .name("Bucket")
- .expressionLanguageSupported(true)
- .required(true)
- .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
- .build();
+ .name("Bucket")
+ .expressionLanguageSupported(true)
+ .required(true)
+ .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
+ .build();
public static final PropertyDescriptor KEY = new PropertyDescriptor.Builder()
- .name("Object Key")
- .required(true)
- .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
- .expressionLanguageSupported(true)
- .defaultValue("${filename}")
- .build();
-
-
+ .name("Object Key")
+ .required(true)
+ .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
+ .expressionLanguageSupported(true)
+ .defaultValue("${filename}")
+ .build();
+
@Override
protected AmazonS3Client createClient(final ProcessContext context, final AWSCredentials credentials, final ClientConfiguration config) {
return new AmazonS3Client(credentials, config);
}
-
-
+
protected Grantee createGrantee(final String value) {
- if ( isEmpty(value) ) {
+ if (isEmpty(value)) {
return null;
}
-
- if ( value.contains("@") ) {
+
+ if (value.contains("@")) {
return new EmailAddressGrantee(value);
} else {
return new CanonicalGrantee(value);
}
}
-
+
protected final List<Grantee> createGrantees(final String value) {
- if ( isEmpty(value) ) {
+ if (isEmpty(value)) {
return Collections.emptyList();
}
-
+
final List<Grantee> grantees = new ArrayList<>();
final String[] vals = value.split(",");
- for ( final String val : vals ) {
+ for (final String val : vals) {
final String identifier = val.trim();
final Grantee grantee = createGrantee(identifier);
- if ( grantee != null ) {
+ if (grantee != null) {
grantees.add(grantee);
}
}
return grantees;
}
-
+
protected final AccessControlList createACL(final ProcessContext context, final FlowFile flowFile) {
final AccessControlList acl = new AccessControlList();
-
+
final String ownerId = context.getProperty(OWNER).evaluateAttributeExpressions(flowFile).getValue();
- if ( !isEmpty(ownerId) ) {
+ if (!isEmpty(ownerId)) {
final Owner owner = new Owner();
owner.setId(ownerId);
acl.setOwner(owner);
}
-
- for ( final Grantee grantee : createGrantees(context.getProperty(FULL_CONTROL_USER_LIST).evaluateAttributeExpressions(flowFile).getValue())) {
+
+ for (final Grantee grantee : createGrantees(context.getProperty(FULL_CONTROL_USER_LIST).evaluateAttributeExpressions(flowFile).getValue())) {
acl.grantPermission(grantee, Permission.FullControl);
}
-
- for ( final Grantee grantee : createGrantees(context.getProperty(READ_USER_LIST).evaluateAttributeExpressions(flowFile).getValue())) {
+
+ for (final Grantee grantee : createGrantees(context.getProperty(READ_USER_LIST).evaluateAttributeExpressions(flowFile).getValue())) {
acl.grantPermission(grantee, Permission.Read);
}
- for ( final Grantee grantee : createGrantees(context.getProperty(WRITE_USER_LIST).evaluateAttributeExpressions(flowFile).getValue())) {
+ for (final Grantee grantee : createGrantees(context.getProperty(WRITE_USER_LIST).evaluateAttributeExpressions(flowFile).getValue())) {
acl.grantPermission(grantee, Permission.Write);
}
-
- for ( final Grantee grantee : createGrantees(context.getProperty(READ_ACL_LIST).evaluateAttributeExpressions(flowFile).getValue())) {
+
+ for (final Grantee grantee : createGrantees(context.getProperty(READ_ACL_LIST).evaluateAttributeExpressions(flowFile).getValue())) {
acl.grantPermission(grantee, Permission.ReadAcp);
}
- for ( final Grantee grantee : createGrantees(context.getProperty(WRITE_ACL_LIST).evaluateAttributeExpressions(flowFile).getValue())) {
+ for (final Grantee grantee : createGrantees(context.getProperty(WRITE_ACL_LIST).evaluateAttributeExpressions(flowFile).getValue())) {
acl.grantPermission(grantee, Permission.WriteAcp);
}
-
+
return acl;
}
}
http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/060a1e0d/nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/s3/FetchS3Object.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/s3/FetchS3Object.java b/nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/s3/FetchS3Object.java
index 63c8346..2406b67 100644
--- a/nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/s3/FetchS3Object.java
+++ b/nifi/nifi-nar-bundles/nifi-aws-bundle/nifi-aws-processors/src/main/java/org/apache/nifi/processors/aws/s3/FetchS3Object.java
@@ -43,46 +43,44 @@ import com.amazonaws.services.s3.model.GetObjectRequest;
import com.amazonaws.services.s3.model.ObjectMetadata;
import com.amazonaws.services.s3.model.S3Object;
-
@SupportsBatching
@SeeAlso({PutS3Object.class})
@Tags({"Amazon", "S3", "AWS", "Get", "Fetch"})
@CapabilityDescription("Retrieves the contents of an S3 Object and writes it to the content of a FlowFile")
@WritesAttributes({
- @WritesAttribute(attribute="s3.bucket", description="The name of the S3 bucket"),
- @WritesAttribute(attribute="path", description="The path of the file"),
- @WritesAttribute(attribute="absolute.path", description="The path of the file"),
- @WritesAttribute(attribute="filename", description="The name of the file"),
- @WritesAttribute(attribute="hash.value", description="The MD5 sum of the file"),
- @WritesAttribute(attribute="hash.algorithm", description="MD5"),
- @WritesAttribute(attribute="mime.type", description="If S3 provides the content type/MIME type, this attribute will hold that file"),
- @WritesAttribute(attribute="s3.etag", description="The ETag that can be used to see if the file has changed"),
- @WritesAttribute(attribute="s3.expirationTime", description="If the file has an expiration date, this attribute will be set, containing the milliseconds since epoch in UTC time"),
- @WritesAttribute(attribute="s3.expirationTimeRuleId", description="The ID of the rule that dictates this object's expiration time"),
- @WritesAttribute(attribute="s3.version", description="The version of the S3 object"),
-})
+ @WritesAttribute(attribute = "s3.bucket", description = "The name of the S3 bucket"),
+ @WritesAttribute(attribute = "path", description = "The path of the file"),
+ @WritesAttribute(attribute = "absolute.path", description = "The path of the file"),
+ @WritesAttribute(attribute = "filename", description = "The name of the file"),
+ @WritesAttribute(attribute = "hash.value", description = "The MD5 sum of the file"),
+ @WritesAttribute(attribute = "hash.algorithm", description = "MD5"),
+ @WritesAttribute(attribute = "mime.type", description = "If S3 provides the content type/MIME type, this attribute will hold that file"),
+ @WritesAttribute(attribute = "s3.etag", description = "The ETag that can be used to see if the file has changed"),
+ @WritesAttribute(attribute = "s3.expirationTime", description = "If the file has an expiration date, this attribute will be set, containing the milliseconds since epoch in UTC time"),
+ @WritesAttribute(attribute = "s3.expirationTimeRuleId", description = "The ID of the rule that dictates this object's expiration time"),
+ @WritesAttribute(attribute = "s3.version", description = "The version of the S3 object"),})
public class FetchS3Object extends AbstractS3Processor {
- public static final PropertyDescriptor VERSION_ID = new PropertyDescriptor.Builder()
- .name("Version")
- .description("The Version of the Object to download")
- .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
- .expressionLanguageSupported(true)
- .required(false)
- .build();
-
+ public static final PropertyDescriptor VERSION_ID = new PropertyDescriptor.Builder()
+ .name("Version")
+ .description("The Version of the Object to download")
+ .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
+ .expressionLanguageSupported(true)
+ .required(false)
+ .build();
+
public static final List<PropertyDescriptor> properties = Collections.unmodifiableList(
- Arrays.asList(BUCKET, KEY, REGION, ACCESS_KEY, SECRET_KEY, CREDENTAILS_FILE, TIMEOUT, VERSION_ID) );
+ Arrays.asList(BUCKET, KEY, REGION, ACCESS_KEY, SECRET_KEY, CREDENTAILS_FILE, TIMEOUT, VERSION_ID));
@Override
protected List<PropertyDescriptor> getSupportedPropertyDescriptors() {
return properties;
}
-
+
@Override
public void onTrigger(final ProcessContext context, final ProcessSession session) {
FlowFile flowFile = session.get();
- if ( flowFile == null ) {
+ if (flowFile == null) {
return;
}
@@ -90,10 +88,10 @@ public class FetchS3Object extends AbstractS3Processor {
final String bucket = context.getProperty(BUCKET).evaluateAttributeExpressions(flowFile).getValue();
final String key = context.getProperty(KEY).evaluateAttributeExpressions(flowFile).getValue();
final String versionId = context.getProperty(VERSION_ID).evaluateAttributeExpressions(flowFile).getValue();
-
+
final AmazonS3 client = getClient();
final GetObjectRequest request;
- if ( versionId == null ) {
+ if (versionId == null) {
request = new GetObjectRequest(bucket, key);
} else {
request = new GetObjectRequest(bucket, key, versionId);
@@ -103,12 +101,12 @@ public class FetchS3Object extends AbstractS3Processor {
try (final S3Object s3Object = client.getObject(request)) {
flowFile = session.importFrom(s3Object.getObjectContent(), flowFile);
attributes.put("s3.bucket", s3Object.getBucketName());
-
+
final ObjectMetadata metadata = s3Object.getObjectMetadata();
- if ( metadata.getContentDisposition() != null ) {
+ if (metadata.getContentDisposition() != null) {
final String fullyQualified = metadata.getContentDisposition();
final int lastSlash = fullyQualified.lastIndexOf("/");
- if ( lastSlash > -1 && lastSlash < fullyQualified.length() - 1 ) {
+ if (lastSlash > -1 && lastSlash < fullyQualified.length() - 1) {
attributes.put(CoreAttributes.PATH.key(), fullyQualified.substring(0, lastSlash));
attributes.put(CoreAttributes.ABSOLUTE_PATH.key(), fullyQualified);
attributes.put(CoreAttributes.FILENAME.key(), fullyQualified.substring(lastSlash + 1));
@@ -116,42 +114,42 @@ public class FetchS3Object extends AbstractS3Processor {
attributes.put(CoreAttributes.FILENAME.key(), metadata.getContentDisposition());
}
}
- if (metadata.getContentMD5() != null ) {
+ if (metadata.getContentMD5() != null) {
attributes.put("hash.value", metadata.getContentMD5());
attributes.put("hash.algorithm", "MD5");
}
- if ( metadata.getContentType() != null ) {
+ if (metadata.getContentType() != null) {
attributes.put(CoreAttributes.MIME_TYPE.key(), metadata.getContentType());
}
- if ( metadata.getETag() != null ) {
+ if (metadata.getETag() != null) {
attributes.put("s3.etag", metadata.getETag());
}
- if ( metadata.getExpirationTime() != null ) {
+ if (metadata.getExpirationTime() != null) {
attributes.put("s3.expirationTime", String.valueOf(metadata.getExpirationTime().getTime()));
}
- if ( metadata.getExpirationTimeRuleId() != null ) {
+ if (metadata.getExpirationTimeRuleId() != null) {
attributes.put("s3.expirationTimeRuleId", metadata.getExpirationTimeRuleId());
}
- if ( metadata.getUserMetadata() != null ) {
+ if (metadata.getUserMetadata() != null) {
attributes.putAll(metadata.getUserMetadata());
}
- if ( metadata.getVersionId() != null ) {
+ if (metadata.getVersionId() != null) {
attributes.put("s3.version", metadata.getVersionId());
}
} catch (final IOException | AmazonClientException ioe) {
- getLogger().error("Failed to retrieve S3 Object for {}; routing to failure", new Object[] {flowFile, ioe});
+ getLogger().error("Failed to retrieve S3 Object for {}; routing to failure", new Object[]{flowFile, ioe});
session.transfer(flowFile, REL_FAILURE);
return;
}
- if ( !attributes.isEmpty() ) {
+ if (!attributes.isEmpty()) {
flowFile = session.putAllAttributes(flowFile, attributes);
}
session.transfer(flowFile, REL_SUCCESS);
final long transferMillis = TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - startNanos);
- getLogger().info("Successfully retrieved S3 Object for {} in {} millis; routing to success", new Object[] {flowFile, transferMillis});
+ getLogger().info("Successfully retrieved S3 Object for {} in {} millis; routing to success", new Object[]{flowFile, transferMillis});
session.getProvenanceReporter().receive(flowFile, "http://" + bucket + ".amazonaws.com/" + key, transferMillis);
}
-
+
}