http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/f6d9354b/README.md ---------------------------------------------------------------------- diff --git a/README.md b/README.md index 2f5fad3..c901e36 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ Apache NiFi is a dataflow system based on the concepts of flow-based programming ## Getting Started -- Build the nar-maven-plugin. Change directory to 'nar-maven-plugin' and +- Build the nifi-nar-maven-plugin. Change directory to 'nifi-nar-maven-plugin' and follow the directions found there. - Build nifi. Change directory to 'nifi' and follow the directions found there.
http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/f6d9354b/nar-maven-plugin/DISCLAIMER ---------------------------------------------------------------------- diff --git a/nar-maven-plugin/DISCLAIMER b/nar-maven-plugin/DISCLAIMER deleted file mode 100644 index 0f8e7a1..0000000 --- a/nar-maven-plugin/DISCLAIMER +++ /dev/null @@ -1,15 +0,0 @@ -Apache NiFi is an effort undergoing incubation at the Apache Software -Foundation (ASF), sponsored by the Apache Incubator PMC. - -Incubation is required of all newly accepted projects until a further review -indicates that the infrastructure, communications, and decision making process -have stabilized in a manner consistent with other successful ASF projects. - -While incubation status is not necessarily a reflection of the completeness -or stability of the code, it does indicate that the project has yet to be -fully endorsed by the ASF. - -For more information about the incubation status of the Apache NiFi project -you can go to the following page: - -http://nifi.incubator.apache.org/ http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/f6d9354b/nar-maven-plugin/LICENSE ---------------------------------------------------------------------- diff --git a/nar-maven-plugin/LICENSE b/nar-maven-plugin/LICENSE deleted file mode 100644 index 7a4a3ea..0000000 --- a/nar-maven-plugin/LICENSE +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed 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. \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/f6d9354b/nar-maven-plugin/NOTICE ---------------------------------------------------------------------- diff --git a/nar-maven-plugin/NOTICE b/nar-maven-plugin/NOTICE deleted file mode 100644 index 76a23fb..0000000 --- a/nar-maven-plugin/NOTICE +++ /dev/null @@ -1,5 +0,0 @@ -Apache NiFi -Copyright 2014-2015 The Apache Software Foundation - -This product includes software developed at -The Apache Software Foundation (http://www.apache.org/). http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/f6d9354b/nar-maven-plugin/README.md ---------------------------------------------------------------------- diff --git a/nar-maven-plugin/README.md b/nar-maven-plugin/README.md deleted file mode 100644 index 941de2b..0000000 --- a/nar-maven-plugin/README.md +++ /dev/null @@ -1,57 +0,0 @@ -# Apache NiFi NAR Maven Plugin - -Apache NiFi NAR Maven Plugin helps to build NiFi Archive bundles to support the classloader isolation model of NiFi. - -## Table of Contents - -- [Getting Started](#getting-started) -- [Getting Help](#getting-help) -- [Requirements](#requirements) -- [License](#license) -- [Disclaimer](#disclaimer) - -## Getting Started - -To Build: -- Executed 'mvn clean install' - -## Getting Help -If you have questions, you can reach out to our mailing list: [email protected] -([archive](http://mail-archives.apache.org/mod_mbox/incubator-nifi-dev)). -We're also often available in IRC: #nifi on -[irc.freenode.net](http://webchat.freenode.net/?channels=#nifi). - - -## Requirements -* JDK 1.7 or higher - -## License - -Except as otherwise noted this software is licensed under the -[Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.html) - -Licensed 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. - -## Disclaimer - -Apache NiFi is an effort undergoing incubation at the Apache Software -Foundation (ASF), sponsored by the Apache Incubator PMC. - -Incubation is required of all newly accepted projects until a further review -indicates that the infrastructure, communications, and decision making process -have stabilized in a manner consistent with other successful ASF projects. - -While incubation status is not necessarily a reflection of the completeness -or stability of the code, it does indicate that the project has yet to be -fully endorsed by the ASF. - http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/f6d9354b/nar-maven-plugin/pom.xml ---------------------------------------------------------------------- diff --git a/nar-maven-plugin/pom.xml b/nar-maven-plugin/pom.xml deleted file mode 100644 index 313e7fc..0000000 --- a/nar-maven-plugin/pom.xml +++ /dev/null @@ -1,266 +0,0 @@ -<?xml version="1.0"?> -<!-- - Licensed to the Apache Software Foundation (ASF) under one or more - contributor license agreements. See the NOTICE file distributed with - this work for additional information regarding copyright ownership. - The ASF licenses this file to You under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with - the License. You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <parent> - <groupId>org.apache</groupId> - <artifactId>apache</artifactId> - <version>16</version> - <relativePath /> - </parent> - <groupId>org.apache.nifi</groupId> - <artifactId>nar-maven-plugin</artifactId> - <version>0.0.1-incubating-SNAPSHOT</version> - <packaging>maven-plugin</packaging> - <name>Apache NiFi NAR Plugin</name> - <description>Apache NiFi Nar Plugin. It is currently a part of the Apache Incubator.</description> - <url>http://nifi.incubator.apache.org/maven-site/</url> - <organization> - <name>Apache NiFi (incubating) Project</name> - <url>http://nifi.incubating.apache.org/</url> - </organization> - <licenses> - <license> - <name>Apache License, Version 2.0</name> - <url>http://www.apache.org/licenses/LICENSE-2.0</url> - </license> - </licenses> - <mailingLists> - <mailingList> - <name>Dev</name> - <subscribe>[email protected]</subscribe> - <unsubscribe>[email protected]</unsubscribe> - <post>[email protected]</post> - <archive>http://mail-archives.apache.org/mod_mbox/incubator-nifi-dev</archive> - </mailingList> - <mailingList> - <name>Commits</name> - <subscribe>[email protected]</subscribe> - <unsubscribe>[email protected]</unsubscribe> - <post>[email protected]</post> - <archive>http://mail-archives.apache.org/mod_mbox/incubator-nifi-commits</archive> - </mailingList> - </mailingLists> - <scm> - <connection>scm:git:git://git.apache.org/incubator-nifi.git</connection> - <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/incubator-nifi.git</developerConnection> - <url>https://git-wip-us.apache.org/repos/asf?p=incubator-nifi.git</url> - <tag>HEAD</tag> - </scm> - <issueManagement> - <system>JIRA</system> - <url>https://issues.apache.org/jira/browse/NIFI</url> - </issueManagement> - <properties> - <maven.compiler.source>1.7</maven.compiler.source> - <maven.compiler.target>1.7</maven.compiler.target> - <maven.min-version>3.0.5</maven.min-version> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> - </properties> - <prerequisites> - <maven>${maven.min-version}</maven> - </prerequisites> - <build> - <pluginManagement> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>3.2</version> - <configuration> - <fork>true</fork> - <optimize>true</optimize> - <showDeprecation>true</showDeprecation> - <showWarnings>true</showWarnings> - </configuration> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-resources-plugin</artifactId> - <version>2.7</version> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-surefire-plugin</artifactId> - <version>2.18</version> - <configuration> - <argLine>-Xmx1G</argLine> - </configuration> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-assembly-plugin</artifactId> - <version>2.5.2</version> - <configuration> - <tarLongFileMode>gnu</tarLongFileMode> - </configuration> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-source-plugin</artifactId> - <version>2.4</version> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-site-plugin</artifactId> - <version>3.4</version> - </plugin> - <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>exec-maven-plugin</artifactId> - <version>1.3.2</version> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>2.10.1</version> - <configuration> - <failOnError>false</failOnError> - <quiet>true</quiet> - <show>private</show> - <encoding>UTF-8</encoding> - <quiet>true</quiet> - <javadocVersion>1.7</javadocVersion> - <additionalJOption>-J-Xmx512m</additionalJOption> - </configuration> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-release-plugin</artifactId> - <version>2.5.1</version> - <configuration> - <useReleaseProfile>true</useReleaseProfile> - <releaseProfiles>apache-release</releaseProfiles> - <autoVersionSubmodules>true</autoVersionSubmodules> - <goals>deploy</goals> - <tagNameFormat>@{project.artifactId}-@{project.version}</tagNameFormat> - <pushChanges>false</pushChanges> - <localCheckout>true</localCheckout> - </configuration> - <executions> - <execution> - <id>default</id> - <goals> - <goal>perform</goal> - </goals> - <configuration> - <pomFileName>nar-maven-plugin/pom.xml</pomFileName> - </configuration> - </execution> - </executions> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-jar-plugin</artifactId> - <version>2.5</version> - </plugin> - </plugins> - </pluginManagement> - <plugins> - <plugin> - <groupId>org.sonatype.plugins</groupId> - <artifactId>nexus-staging-maven-plugin</artifactId> - <version>1.6.5</version> - <extensions>true</extensions> - <configuration> - <serverId>repository.apache.org</serverId> - <nexusUrl>https://repository.apache.org/</nexusUrl> - </configuration> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-plugin-plugin</artifactId> - <executions> - <execution> - <id>default-descriptor</id> - <goals> - <goal>descriptor</goal> - </goals> - <phase>process-classes</phase> - </execution> - <execution> - <id>help-descriptor</id> - <goals> - <goal>helpmojo</goal> - </goals> - <phase>process-classes</phase> - </execution> - </executions> - </plugin> - <plugin> - <groupId>org.apache.rat</groupId> - <artifactId>apache-rat-plugin</artifactId> - <configuration> - <excludes> - <exclude>nb-configuration.xml</exclude> - <exclude>nbactions.xml</exclude> - </excludes> - </configuration> - </plugin> - </plugins> - </build> - <dependencies> - <dependency> - <groupId>org.apache.maven</groupId> - <artifactId>maven-plugin-api</artifactId> - <version>2.2.1</version> - </dependency> - <dependency> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-dependency-plugin</artifactId> - <type>maven-plugin</type> - <version>2.9</version> - </dependency> - <dependency> - <!-- No code from maven-jar-plugin is actually used; it's included - just to simplify the dependencies list. --> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-jar-plugin</artifactId> - <version>2.5</version> - </dependency> - <dependency> - <groupId>org.apache.maven.plugin-tools</groupId> - <artifactId>maven-plugin-annotations</artifactId> - <scope>provided</scope> - <version>3.3</version> - </dependency> - </dependencies> - <profiles> - <profile> - <!-- Automatically check for licenses. - Activate with -P check-licenses --> - <id>check-licenses</id> - <build> - <plugins> - <plugin> - <groupId>org.apache.rat</groupId> - <artifactId>apache-rat-plugin</artifactId> - <executions> - <execution> - <goals> - <goal>check</goal> - </goals> - <phase>verify</phase> - </execution> - </executions> - </plugin> - </plugins> - </build> - </profile> - </profiles> -</project> http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/f6d9354b/nar-maven-plugin/src/main/java/nifi/NarMojo.java ---------------------------------------------------------------------- diff --git a/nar-maven-plugin/src/main/java/nifi/NarMojo.java b/nar-maven-plugin/src/main/java/nifi/NarMojo.java deleted file mode 100644 index 9b70ec0..0000000 --- a/nar-maven-plugin/src/main/java/nifi/NarMojo.java +++ /dev/null @@ -1,613 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package nifi; - -import java.io.File; -import java.io.IOException; -import java.util.HashSet; -import java.util.List; -import java.util.Set; -import org.apache.maven.archiver.MavenArchiveConfiguration; -import org.apache.maven.archiver.MavenArchiver; -import org.apache.maven.artifact.Artifact; -import org.apache.maven.artifact.DependencyResolutionRequiredException; -import org.apache.maven.artifact.factory.ArtifactFactory; -import org.apache.maven.artifact.installer.ArtifactInstaller; -import org.apache.maven.artifact.metadata.ArtifactMetadataSource; -import org.apache.maven.artifact.repository.ArtifactRepository; -import org.apache.maven.artifact.repository.ArtifactRepositoryFactory; -import org.apache.maven.artifact.resolver.ArtifactCollector; -import org.apache.maven.artifact.resolver.ArtifactNotFoundException; -import org.apache.maven.artifact.resolver.ArtifactResolutionException; -import org.apache.maven.artifact.resolver.ArtifactResolver; -import org.apache.maven.plugin.AbstractMojo; -import org.apache.maven.plugin.MojoExecutionException; -import org.apache.maven.plugin.MojoFailureException; -import org.apache.maven.plugin.dependency.utils.DependencyStatusSets; -import org.apache.maven.plugin.dependency.utils.DependencyUtil; -import org.apache.maven.plugin.dependency.utils.filters.DestFileFilter; -import org.apache.maven.plugin.dependency.utils.resolvers.ArtifactsResolver; -import org.apache.maven.plugin.dependency.utils.resolvers.DefaultArtifactsResolver; -import org.apache.maven.plugin.dependency.utils.translators.ArtifactTranslator; -import org.apache.maven.plugin.dependency.utils.translators.ClassifierTypeTranslator; -import org.apache.maven.plugins.annotations.LifecyclePhase; -import org.apache.maven.plugins.annotations.Mojo; -import org.apache.maven.plugins.annotations.Parameter; -import org.apache.maven.plugins.annotations.ResolutionScope; -import org.apache.maven.project.MavenProject; -import org.apache.maven.execution.MavenSession; -import org.apache.maven.plugins.annotations.Component; -import org.apache.maven.project.MavenProjectHelper; -import org.apache.maven.shared.artifact.filter.collection.ArtifactFilterException; -import org.apache.maven.shared.artifact.filter.collection.ArtifactIdFilter; -import org.apache.maven.shared.artifact.filter.collection.ArtifactsFilter; -import org.apache.maven.shared.artifact.filter.collection.ClassifierFilter; -import org.apache.maven.shared.artifact.filter.collection.FilterArtifacts; -import org.apache.maven.shared.artifact.filter.collection.GroupIdFilter; -import org.apache.maven.shared.artifact.filter.collection.ScopeFilter; -import org.apache.maven.shared.artifact.filter.collection.ProjectTransitivityFilter; -import org.apache.maven.shared.artifact.filter.collection.TypeFilter; -import org.codehaus.plexus.archiver.ArchiverException; -import org.codehaus.plexus.archiver.jar.JarArchiver; -import org.codehaus.plexus.archiver.jar.ManifestException; -import org.codehaus.plexus.archiver.manager.ArchiverManager; -import org.codehaus.plexus.util.FileUtils; -import org.codehaus.plexus.util.StringUtils; - -/** - * Packages the current project as an Apache NiFi Archive (NAR). - * - * The following code is derived from maven-dependencies-plugin and - * maven-jar-plugin. The functionality of CopyDependenciesMojo and JarMojo was - * simplified to the use case of NarMojo. - * - */ -@Mojo(name = "nar", defaultPhase = LifecyclePhase.PACKAGE, threadSafe = false, requiresDependencyResolution = ResolutionScope.RUNTIME) -public class NarMojo extends AbstractMojo { - - private static final String[] DEFAULT_EXCLUDES = new String[]{"**/package.html"}; - private static final String[] DEFAULT_INCLUDES = new String[]{"**/**"}; - - /** - * POM - * - */ - @Parameter(defaultValue = "${project}", readonly = true, required = true) - protected MavenProject project; - - @Parameter(defaultValue = "${session}", readonly = true, required = true) - protected MavenSession session; - - /** - * List of files to include. Specified as fileset patterns. - */ - @Parameter(property = "includes") - protected String[] includes; - /** - * List of files to exclude. Specified as fileset patterns. - */ - @Parameter(property = "excludes") - protected String[] excludes; - /** - * Name of the generated NAR. - * - */ - @Parameter(alias = "narName", property = "nar.finalName", defaultValue = "${project.build.finalName}", required = true) - protected String finalName; - - /** - * The Jar archiver. - * - * \@\component role="org.codehaus.plexus.archiver.Archiver" roleHint="jar" - */ - @Component(role = org.codehaus.plexus.archiver.Archiver.class, hint = "jar") - private JarArchiver jarArchiver; - /** - * The archive configuration to use. - * - * See <a - * href="http://maven.apache.org/shared/maven-archiver/index.html">the - * documentation for Maven Archiver</a>. - * - */ - @Parameter(property = "archive") - protected final MavenArchiveConfiguration archive = new MavenArchiveConfiguration(); - /** - * Path to the default MANIFEST file to use. It will be used if - * <code>useDefaultManifestFile</code> is set to <code>true</code>. - * - */ - @Parameter(property = "defaultManifestFiles", defaultValue = "${project.build.outputDirectory}/META-INF/MANIFEST.MF", readonly = true, required = true) - protected File defaultManifestFile; - - /** - * Set this to <code>true</code> to enable the use of the - * <code>defaultManifestFile</code>. - * - * @since 2.2 - */ - @Parameter(property = "nar.useDefaultManifestFile", defaultValue = "false") - protected boolean useDefaultManifestFile; - - @Component - protected MavenProjectHelper projectHelper; - - /** - * Whether creating the archive should be forced. - * - */ - @Parameter(property = "nar.forceCreation", defaultValue = "false") - protected boolean forceCreation; - - /** - * Classifier to add to the artifact generated. If given, the artifact will - * be an attachment instead. - * - */ - @Parameter(property = "classifier") - protected String classifier; - - @Component - protected ArtifactInstaller installer; - - @Component - protected ArtifactRepositoryFactory repositoryFactory; - - /** - * This only applies if the classifier parameter is used. - * - */ - @Parameter(property = "mdep.failOnMissingClassifierArtifact", defaultValue = "true", required = false) - protected boolean failOnMissingClassifierArtifact = true; - - /** - * Comma Separated list of Types to include. Empty String indicates include - * everything (default). - * - */ - @Parameter(property = "includeTypes", required = false) - protected String includeTypes; - - /** - * Comma Separated list of Types to exclude. Empty String indicates don't - * exclude anything (default). - * - */ - @Parameter(property = "excludeTypes", required = false) - protected String excludeTypes; - - /** - * Scope to include. An Empty string indicates all scopes (default). - * - */ - @Parameter(property = "includeScope", required = false) - protected String includeScope; - - /** - * Scope to exclude. An Empty string indicates no scopes (default). - * - */ - @Parameter(property = "excludeScope", required = false) - protected String excludeScope; - - /** - * Comma Separated list of Classifiers to include. Empty String indicates - * include everything (default). - * - */ - @Parameter(property = "includeClassifiers", required = false) - protected String includeClassifiers; - - /** - * Comma Separated list of Classifiers to exclude. Empty String indicates - * don't exclude anything (default). - * - */ - @Parameter(property = "excludeClassifiers", required = false) - protected String excludeClassifiers; - - /** - * Specify classifier to look for. Example: sources - * - */ - @Parameter(property = "classifier", required = false) - protected String copyDepClassifier; - - /** - * Specify type to look for when constructing artifact based on classifier. - * Example: java-source,jar,war, nar - * - */ - @Parameter(property = "type", required = false, defaultValue = "nar") - protected String type; - - /** - * Comma separated list of Artifact names too exclude. - * - */ - @Parameter(property = "excludeArtifacts", required = false) - protected String excludeArtifactIds; - - /** - * Comma separated list of Artifact names to include. - * - */ - @Parameter(property = "includeArtifacts", required = false) - protected String includeArtifactIds; - - /** - * Comma separated list of GroupId Names to exclude. - * - */ - @Parameter(property = "excludeArtifacts", required = false) - protected String excludeGroupIds; - - /** - * Comma separated list of GroupIds to include. - * - */ - @Parameter(property = "includeGroupIds", required = false) - protected String includeGroupIds; - - /** - * Directory to store flag files - * - */ - @Parameter(property = "markersDirectory", required = false, defaultValue = "${project.build.directory}/dependency-maven-plugin-markers") - protected File markersDirectory; - - /** - * Overwrite release artifacts - * - */ - @Parameter(property = "overWriteReleases", required = false) - protected boolean overWriteReleases; - - /** - * Overwrite snapshot artifacts - * - */ - @Parameter(property = "overWriteSnapshots", required = false) - protected boolean overWriteSnapshots; - - /** - * Overwrite artifacts that don't exist or are older than the source. - * - */ - @Parameter(property = "overWriteIfNewer", required = false, defaultValue = "true") - protected boolean overWriteIfNewer; - - @Parameter( property = "projectBuildDirectory", required = false, defaultValue = "${project.build.directory}") - protected File projectBuildDirectory; - - /** - * Used to look up Artifacts in the remote repository. - */ - @Component - protected ArtifactFactory factory; - - /** - * Used to look up Artifacts in the remote repository. - * - */ - @Component - protected ArtifactResolver resolver; - - /** - * Artifact collector, needed to resolve dependencies. - * - */ - @Component(role = org.apache.maven.artifact.resolver.ArtifactCollector.class) - protected ArtifactCollector artifactCollector; - - @Component(role = org.apache.maven.artifact.metadata.ArtifactMetadataSource.class) - protected ArtifactMetadataSource artifactMetadataSource; - - /** - * Location of the local repository. - * - */ - @Parameter(property = "localRepository", required = true, readonly = true) - protected ArtifactRepository local; - - /** - * List of Remote Repositories used by the resolver - * - */ - @Parameter(property = "project.remoteArtifactRepositories", required = true, readonly = true) - protected List remoteRepos; - - /** - * To look up Archiver/UnArchiver implementations - * - */ - @Component - protected ArchiverManager archiverManager; - - /** - * Contains the full list of projects in the reactor. - * - */ - @Parameter(property = "reactorProjects", required = true, readonly = true) - protected List reactorProjects; - - /** - * If the plugin should be silent. - * - */ - @Parameter(property = "silent", required = false, defaultValue = "false") - public boolean silent; - - /** - * Output absolute filename for resolved artifacts - * - */ - @Parameter(property = "outputAbsoluteArtifactFilename", defaultValue = "false", required = false) - protected boolean outputAbsoluteArtifactFilename; - - @Override - public void execute() throws MojoExecutionException, MojoFailureException { - copyDependencies(); - makeNar(); - } - - private void copyDependencies() throws MojoExecutionException { - DependencyStatusSets dss = getDependencySets(this.failOnMissingClassifierArtifact); - Set artifacts = dss.getResolvedDependencies(); - - for (Object artifactObj : artifacts) { - copyArtifact((Artifact) artifactObj); - } - - artifacts = dss.getSkippedDependencies(); - for (Object artifactOjb : artifacts) { - Artifact artifact = (Artifact) artifactOjb; - getLog().info(artifact.getFile().getName() + " already exists in destination."); - } - } - - protected void copyArtifact(Artifact artifact) throws MojoExecutionException { - String destFileName = DependencyUtil.getFormattedFileName(artifact, false); - final File destDir = DependencyUtil.getFormattedOutputDirectory(false, false, false, false, false, getDependenciesDirectory(), artifact); - final File destFile = new File(destDir, destFileName); - copyFile(artifact.getFile(), destFile); - } - - protected Artifact getResolvedPomArtifact(Artifact artifact) { - Artifact pomArtifact = this.factory.createArtifact(artifact.getGroupId(), artifact.getArtifactId(), artifact.getVersion(), "", "pom"); - // Resolve the pom artifact using repos - try { - this.resolver.resolve(pomArtifact, this.remoteRepos, this.local); - } catch (ArtifactResolutionException | ArtifactNotFoundException e) { - getLog().info(e.getMessage()); - } - return pomArtifact; - } - - protected ArtifactsFilter getMarkedArtifactFilter() { - return new DestFileFilter(this.overWriteReleases, this.overWriteSnapshots, this.overWriteIfNewer, false, false, false, false, false, getDependenciesDirectory()); - } - - protected DependencyStatusSets getDependencySets(boolean stopOnFailure) throws MojoExecutionException { - // add filters in well known order, least specific to most specific - FilterArtifacts filter = new FilterArtifacts(); - - filter.addFilter(new ProjectTransitivityFilter(project.getDependencyArtifacts(), false)); - filter.addFilter(new ScopeFilter(this.includeScope, this.excludeScope)); - filter.addFilter(new TypeFilter(this.includeTypes, this.excludeTypes)); - filter.addFilter(new ClassifierFilter(this.includeClassifiers, this.excludeClassifiers)); - filter.addFilter(new GroupIdFilter(this.includeGroupIds, this.excludeGroupIds)); - filter.addFilter(new ArtifactIdFilter(this.includeArtifactIds, this.excludeArtifactIds)); - - // explicitly filter our nar dependencies - filter.addFilter(new TypeFilter("", "nar")); - - // start with all artifacts. - Set artifacts = project.getArtifacts(); - - // perform filtering - try { - artifacts = filter.filter(artifacts); - } catch (ArtifactFilterException e) { - throw new MojoExecutionException(e.getMessage(), e); - } - - // transform artifacts if classifier is set - final DependencyStatusSets status; - if (StringUtils.isNotEmpty(copyDepClassifier)) { - status = getClassifierTranslatedDependencies(artifacts, stopOnFailure); - } else { - status = filterMarkedDependencies(artifacts); - } - - return status; - } - - protected DependencyStatusSets getClassifierTranslatedDependencies(Set artifacts, boolean stopOnFailure) throws MojoExecutionException { - Set unResolvedArtifacts = new HashSet(); - Set resolvedArtifacts = artifacts; - DependencyStatusSets status = new DependencyStatusSets(); - - // possibly translate artifacts into a new set of artifacts based on the - // classifier and type - // if this did something, we need to resolve the new artifacts - if (StringUtils.isNotEmpty(copyDepClassifier)) { - ArtifactTranslator translator = new ClassifierTypeTranslator(this.copyDepClassifier, this.type, this.factory); - artifacts = translator.translate(artifacts, getLog()); - - status = filterMarkedDependencies(artifacts); - - // the unskipped artifacts are in the resolved set. - artifacts = status.getResolvedDependencies(); - - // resolve the rest of the artifacts - ArtifactsResolver artifactsResolver = new DefaultArtifactsResolver(this.resolver, this.local, - this.remoteRepos, stopOnFailure); - resolvedArtifacts = artifactsResolver.resolve(artifacts, getLog()); - - // calculate the artifacts not resolved. - unResolvedArtifacts.addAll(artifacts); - unResolvedArtifacts.removeAll(resolvedArtifacts); - } - - // return a bean of all 3 sets. - status.setResolvedDependencies(resolvedArtifacts); - status.setUnResolvedDependencies(unResolvedArtifacts); - - return status; - } - - protected DependencyStatusSets filterMarkedDependencies(Set artifacts) throws MojoExecutionException { - // remove files that have markers already - FilterArtifacts filter = new FilterArtifacts(); - filter.clearFilters(); - filter.addFilter(getMarkedArtifactFilter()); - - Set unMarkedArtifacts; - try { - unMarkedArtifacts = filter.filter(artifacts); - } catch (ArtifactFilterException e) { - throw new MojoExecutionException(e.getMessage(), e); - } - - // calculate the skipped artifacts - Set skippedArtifacts = new HashSet(); - skippedArtifacts.addAll(artifacts); - skippedArtifacts.removeAll(unMarkedArtifacts); - - return new DependencyStatusSets(unMarkedArtifacts, null, skippedArtifacts); - } - - protected void copyFile(File artifact, File destFile) throws MojoExecutionException { - try { - getLog().info("Copying " + (this.outputAbsoluteArtifactFilename ? artifact.getAbsolutePath() : artifact.getName()) + " to " + destFile); - FileUtils.copyFile(artifact, destFile); - } catch (Exception e) { - throw new MojoExecutionException("Error copying artifact from " + artifact + " to " + destFile, e); - } - } - - private File getClassesDirectory() { - final File outputDirectory = projectBuildDirectory; - return new File(outputDirectory, "classes"); - } - - private File getDependenciesDirectory() { - return new File(getClassesDirectory(), "META-INF/bundled-dependencies"); - } - - private void makeNar() throws MojoExecutionException { - File narFile = createArchive(); - - if (classifier != null) { - projectHelper.attachArtifact(project, "nar", classifier, narFile); - } else { - project.getArtifact().setFile(narFile); - } - } - - public File createArchive() throws MojoExecutionException { - final File outputDirectory = projectBuildDirectory; - File narFile = getNarFile(outputDirectory, finalName, classifier); - MavenArchiver archiver = new MavenArchiver(); - archiver.setArchiver(jarArchiver); - archiver.setOutputFile(narFile); - archive.setForced(forceCreation); - - try { - File contentDirectory = getClassesDirectory(); - if (!contentDirectory.exists()) { - getLog().warn("NAR will be empty - no content was marked for inclusion!"); - } else { - archiver.getArchiver().addDirectory(contentDirectory, getIncludes(), getExcludes()); - } - - File existingManifest = defaultManifestFile; - if (useDefaultManifestFile && existingManifest.exists() && archive.getManifestFile() == null) { - getLog().info("Adding existing MANIFEST to archive. Found under: " + existingManifest.getPath()); - archive.setManifestFile(existingManifest); - } - - // automatically add the artifact id to the manifest - archive.addManifestEntry("Nar-Id", project.getArtifactId()); - - // look for a nar dependency - String narDependency = getNarDependency(); - if (narDependency != null) { - archive.addManifestEntry("Nar-Dependency-Id", narDependency); - } - - archiver.createArchive(session, project, archive); - return narFile; - } catch (ArchiverException | MojoExecutionException | ManifestException | IOException | DependencyResolutionRequiredException e) { - throw new MojoExecutionException("Error assembling NAR", e); - } - } - - private String[] getIncludes() { - if (includes != null && includes.length > 0) { - return includes; - } - return DEFAULT_INCLUDES; - } - - private String[] getExcludes() { - if (excludes != null && excludes.length > 0) { - return excludes; - } - return DEFAULT_EXCLUDES; - } - - protected File getNarFile(File basedir, String finalName, String classifier) { - if (classifier == null) { - classifier = ""; - } else if (classifier.trim().length() > 0 && !classifier.startsWith("-")) { - classifier = "-" + classifier; - } - - return new File(basedir, finalName + classifier + ".nar"); - } - - private String getNarDependency() throws MojoExecutionException { - String narDependency = null; - - // get nar dependencies - FilterArtifacts filter = new FilterArtifacts(); - filter.addFilter(new TypeFilter("nar", "")); - - // start with all artifacts. - Set artifacts = project.getArtifacts(); - - // perform filtering - try { - artifacts = filter.filter(artifacts); - } catch (ArtifactFilterException e) { - throw new MojoExecutionException(e.getMessage(), e); - } - - // ensure there is a single nar dependency - if (artifacts.size() > 1) { - throw new MojoExecutionException("Each NAR represents a ClassLoader. A NAR dependency allows that NAR's ClassLoader to be " - + "used as the parent of this NAR's ClassLoader. As a result, only a single NAR dependency is allowed."); - } else if (artifacts.size() == 1) { - final Artifact artifact = (Artifact) artifacts.iterator().next(); - narDependency = artifact.getArtifactId(); - } - - return narDependency; - } -} http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/f6d9354b/nar-maven-plugin/src/main/resources/META-INF/plexus/components.xml ---------------------------------------------------------------------- diff --git a/nar-maven-plugin/src/main/resources/META-INF/plexus/components.xml b/nar-maven-plugin/src/main/resources/META-INF/plexus/components.xml deleted file mode 100644 index 0680d18..0000000 --- a/nar-maven-plugin/src/main/resources/META-INF/plexus/components.xml +++ /dev/null @@ -1,52 +0,0 @@ -<?xml version="1.0"?> -<!-- - Licensed to the Apache Software Foundation (ASF) under one or more - contributor license agreements. See the NOTICE file distributed with - this work for additional information regarding copyright ownership. - The ASF licenses this file to You under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with - the License. You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> -<component-set> - <components> - <component> - <role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role> - <role-hint>nar</role-hint> - <implementation>org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping</implementation> - <configuration> - <lifecycles> - <lifecycle> - <id>default</id> - <phases> - <process-resources>org.apache.maven.plugins:maven-resources-plugin:resources</process-resources> - <compile>org.apache.maven.plugins:maven-compiler-plugin:compile</compile> - <process-test-resources>org.apache.maven.plugins:maven-resources-plugin:testResources</process-test-resources> - <test-compile>org.apache.maven.plugins:maven-compiler-plugin:testCompile</test-compile> - <test>org.apache.maven.plugins:maven-surefire-plugin:test</test> - <package>org.apache.nifi:nar-maven-plugin:nar</package> - <install>org.apache.maven.plugins:maven-install-plugin:install</install> - <deploy>org.apache.maven.plugins:maven-deploy-plugin:deploy</deploy> - </phases> - </lifecycle> - </lifecycles> - </configuration> - </component> - <component> - <role>org.apache.maven.artifact.handler.ArtifactHandler</role> - <role-hint>nar</role-hint> - <implementation>org.apache.maven.artifact.handler.DefaultArtifactHandler</implementation> - <configuration> - <type>nar</type> - <language>java</language> - <addedToClasspath>false</addedToClasspath> - <includesDependencies>true</includesDependencies> - </configuration> - </component> - </components> -</component-set> http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/f6d9354b/nifi-nar-maven-plugin/DISCLAIMER ---------------------------------------------------------------------- diff --git a/nifi-nar-maven-plugin/DISCLAIMER b/nifi-nar-maven-plugin/DISCLAIMER new file mode 100644 index 0000000..0f8e7a1 --- /dev/null +++ b/nifi-nar-maven-plugin/DISCLAIMER @@ -0,0 +1,15 @@ +Apache NiFi is an effort undergoing incubation at the Apache Software +Foundation (ASF), sponsored by the Apache Incubator PMC. + +Incubation is required of all newly accepted projects until a further review +indicates that the infrastructure, communications, and decision making process +have stabilized in a manner consistent with other successful ASF projects. + +While incubation status is not necessarily a reflection of the completeness +or stability of the code, it does indicate that the project has yet to be +fully endorsed by the ASF. + +For more information about the incubation status of the Apache NiFi project +you can go to the following page: + +http://nifi.incubator.apache.org/ http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/f6d9354b/nifi-nar-maven-plugin/LICENSE ---------------------------------------------------------------------- diff --git a/nifi-nar-maven-plugin/LICENSE b/nifi-nar-maven-plugin/LICENSE new file mode 100644 index 0000000..7a4a3ea --- /dev/null +++ b/nifi-nar-maven-plugin/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed 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. \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/f6d9354b/nifi-nar-maven-plugin/NOTICE ---------------------------------------------------------------------- diff --git a/nifi-nar-maven-plugin/NOTICE b/nifi-nar-maven-plugin/NOTICE new file mode 100644 index 0000000..76a23fb --- /dev/null +++ b/nifi-nar-maven-plugin/NOTICE @@ -0,0 +1,5 @@ +Apache NiFi +Copyright 2014-2015 The Apache Software Foundation + +This product includes software developed at +The Apache Software Foundation (http://www.apache.org/). http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/f6d9354b/nifi-nar-maven-plugin/README.md ---------------------------------------------------------------------- diff --git a/nifi-nar-maven-plugin/README.md b/nifi-nar-maven-plugin/README.md new file mode 100644 index 0000000..941de2b --- /dev/null +++ b/nifi-nar-maven-plugin/README.md @@ -0,0 +1,57 @@ +# Apache NiFi NAR Maven Plugin + +Apache NiFi NAR Maven Plugin helps to build NiFi Archive bundles to support the classloader isolation model of NiFi. + +## Table of Contents + +- [Getting Started](#getting-started) +- [Getting Help](#getting-help) +- [Requirements](#requirements) +- [License](#license) +- [Disclaimer](#disclaimer) + +## Getting Started + +To Build: +- Executed 'mvn clean install' + +## Getting Help +If you have questions, you can reach out to our mailing list: [email protected] +([archive](http://mail-archives.apache.org/mod_mbox/incubator-nifi-dev)). +We're also often available in IRC: #nifi on +[irc.freenode.net](http://webchat.freenode.net/?channels=#nifi). + + +## Requirements +* JDK 1.7 or higher + +## License + +Except as otherwise noted this software is licensed under the +[Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.html) + +Licensed 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. + +## Disclaimer + +Apache NiFi is an effort undergoing incubation at the Apache Software +Foundation (ASF), sponsored by the Apache Incubator PMC. + +Incubation is required of all newly accepted projects until a further review +indicates that the infrastructure, communications, and decision making process +have stabilized in a manner consistent with other successful ASF projects. + +While incubation status is not necessarily a reflection of the completeness +or stability of the code, it does indicate that the project has yet to be +fully endorsed by the ASF. + http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/f6d9354b/nifi-nar-maven-plugin/pom.xml ---------------------------------------------------------------------- diff --git a/nifi-nar-maven-plugin/pom.xml b/nifi-nar-maven-plugin/pom.xml new file mode 100644 index 0000000..cb59c13 --- /dev/null +++ b/nifi-nar-maven-plugin/pom.xml @@ -0,0 +1,265 @@ +<?xml version="1.0"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + http://www.apache.org/licenses/LICENSE-2.0 + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>org.apache</groupId> + <artifactId>apache</artifactId> + <version>16</version> + <relativePath /> + </parent> + <groupId>org.apache.nifi</groupId> + <artifactId>nifi-nar-maven-plugin</artifactId> + <version>1.0.0-incubating-SNAPSHOT</version> + <packaging>maven-plugin</packaging> + <description>Apache NiFi Nar Plugin. It is currently a part of the Apache Incubator.</description> + <url>http://nifi.incubator.apache.org/maven-site/</url> + <organization> + <name>Apache NiFi (incubating) Project</name> + <url>http://nifi.incubating.apache.org/</url> + </organization> + <licenses> + <license> + <name>Apache License, Version 2.0</name> + <url>http://www.apache.org/licenses/LICENSE-2.0</url> + </license> + </licenses> + <mailingLists> + <mailingList> + <name>Dev</name> + <subscribe>[email protected]</subscribe> + <unsubscribe>[email protected]</unsubscribe> + <post>[email protected]</post> + <archive>http://mail-archives.apache.org/mod_mbox/incubator-nifi-dev</archive> + </mailingList> + <mailingList> + <name>Commits</name> + <subscribe>[email protected]</subscribe> + <unsubscribe>[email protected]</unsubscribe> + <post>[email protected]</post> + <archive>http://mail-archives.apache.org/mod_mbox/incubator-nifi-commits</archive> + </mailingList> + </mailingLists> + <scm> + <connection>scm:git:git://git.apache.org/incubator-nifi.git</connection> + <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/incubator-nifi.git</developerConnection> + <url>https://git-wip-us.apache.org/repos/asf?p=incubator-nifi.git</url> + <tag>HEAD</tag> + </scm> + <issueManagement> + <system>JIRA</system> + <url>https://issues.apache.org/jira/browse/NIFI</url> + </issueManagement> + <properties> + <maven.compiler.source>1.7</maven.compiler.source> + <maven.compiler.target>1.7</maven.compiler.target> + <maven.min-version>3.0.5</maven.min-version> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> + </properties> + <prerequisites> + <maven>${maven.min-version}</maven> + </prerequisites> + <build> + <pluginManagement> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <version>3.2</version> + <configuration> + <fork>true</fork> + <optimize>true</optimize> + <showDeprecation>true</showDeprecation> + <showWarnings>true</showWarnings> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-resources-plugin</artifactId> + <version>2.7</version> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <version>2.18</version> + <configuration> + <argLine>-Xmx1G</argLine> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-assembly-plugin</artifactId> + <version>2.5.2</version> + <configuration> + <tarLongFileMode>gnu</tarLongFileMode> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-source-plugin</artifactId> + <version>2.4</version> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-site-plugin</artifactId> + <version>3.4</version> + </plugin> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>exec-maven-plugin</artifactId> + <version>1.3.2</version> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-javadoc-plugin</artifactId> + <version>2.10.1</version> + <configuration> + <failOnError>false</failOnError> + <quiet>true</quiet> + <show>private</show> + <encoding>UTF-8</encoding> + <quiet>true</quiet> + <javadocVersion>1.7</javadocVersion> + <additionalJOption>-J-Xmx512m</additionalJOption> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-release-plugin</artifactId> + <version>2.5.1</version> + <configuration> + <useReleaseProfile>true</useReleaseProfile> + <releaseProfiles>apache-release</releaseProfiles> + <autoVersionSubmodules>true</autoVersionSubmodules> + <goals>deploy</goals> + <tagNameFormat>@{project.artifactId}-@{project.version}</tagNameFormat> + <pushChanges>false</pushChanges> + <localCheckout>true</localCheckout> + </configuration> + <executions> + <execution> + <id>default</id> + <goals> + <goal>perform</goal> + </goals> + <configuration> + <pomFileName>nar-maven-plugin/pom.xml</pomFileName> + </configuration> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-jar-plugin</artifactId> + <version>2.5</version> + </plugin> + </plugins> + </pluginManagement> + <plugins> + <plugin> + <groupId>org.sonatype.plugins</groupId> + <artifactId>nexus-staging-maven-plugin</artifactId> + <version>1.6.5</version> + <extensions>true</extensions> + <configuration> + <serverId>repository.apache.org</serverId> + <nexusUrl>https://repository.apache.org/</nexusUrl> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-plugin-plugin</artifactId> + <executions> + <execution> + <id>default-descriptor</id> + <goals> + <goal>descriptor</goal> + </goals> + <phase>process-classes</phase> + </execution> + <execution> + <id>help-descriptor</id> + <goals> + <goal>helpmojo</goal> + </goals> + <phase>process-classes</phase> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.apache.rat</groupId> + <artifactId>apache-rat-plugin</artifactId> + <configuration> + <excludes> + <exclude>nb-configuration.xml</exclude> + <exclude>nbactions.xml</exclude> + </excludes> + </configuration> + </plugin> + </plugins> + </build> + <dependencies> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-plugin-api</artifactId> + <version>2.2.1</version> + </dependency> + <dependency> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-dependency-plugin</artifactId> + <type>maven-plugin</type> + <version>2.9</version> + </dependency> + <dependency> + <!-- No code from maven-jar-plugin is actually used; it's included + just to simplify the dependencies list. --> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-jar-plugin</artifactId> + <version>2.5</version> + </dependency> + <dependency> + <groupId>org.apache.maven.plugin-tools</groupId> + <artifactId>maven-plugin-annotations</artifactId> + <scope>provided</scope> + <version>3.3</version> + </dependency> + </dependencies> + <profiles> + <profile> + <!-- Automatically check for licenses. + Activate with -P check-licenses --> + <id>check-licenses</id> + <build> + <plugins> + <plugin> + <groupId>org.apache.rat</groupId> + <artifactId>apache-rat-plugin</artifactId> + <executions> + <execution> + <goals> + <goal>check</goal> + </goals> + <phase>verify</phase> + </execution> + </executions> + </plugin> + </plugins> + </build> + </profile> + </profiles> +</project>
