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 <joew...@apache.org> Authored: Wed Apr 22 14:50:03 2015 -0400 Committer: joewitt <joew...@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 (kev...@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); } - + }