This is an automated email from the ASF dual-hosted git repository.

exceptionfactory pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/nifi.git


The following commit(s) were added to refs/heads/main by this push:
     new 030435d996 NIFI-13149 Removed nifi-datadog-bundle
030435d996 is described below

commit 030435d996d8157380fdb193992fe60731788a79
Author: Joseph Witt <[email protected]>
AuthorDate: Mon May 6 10:53:19 2024 -0700

    NIFI-13149 Removed nifi-datadog-bundle
    
    This closes #8751
    
    Signed-off-by: David Handermann <[email protected]>
---
 nifi-assembly/pom.xml                              |   6 -
 nifi-code-coverage/pom.xml                         |   5 -
 .../nifi-datadog-bundle/nifi-datadog-nar/pom.xml   |  40 ---
 .../src/main/resources/META-INF/LICENSE            | 262 --------------------
 .../src/main/resources/META-INF/NOTICE             | 106 --------
 .../nifi-datadog-reporting-task/pom.xml            |  72 ------
 .../reporting/datadog/DDMetricRegistryBuilder.java |  84 -------
 .../reporting/datadog/DataDogReportingTask.java    | 269 ---------------------
 .../nifi/reporting/datadog/api/MetricBuilder.java  |  84 -------
 .../nifi/reporting/datadog/api/MetricFields.java   |  29 ---
 .../nifi/reporting/datadog/api/MetricsBuilder.java |  93 -------
 .../reporting/datadog/metrics/MetricNames.java     |  60 -----
 .../reporting/datadog/metrics/MetricsService.java  | 155 ------------
 .../org.apache.nifi.reporting.ReportingTask        |  15 --
 .../additionalDetails.html                         |  53 ----
 .../datadog/TestDataDogReportingTask.java          | 200 ---------------
 .../nifi/reporting/datadog/TestMetricsService.java | 111 ---------
 nifi-extension-bundles/nifi-datadog-bundle/pom.xml |  30 ---
 nifi-extension-bundles/pom.xml                     |   1 -
 19 files changed, 1675 deletions(-)

diff --git a/nifi-assembly/pom.xml b/nifi-assembly/pom.xml
index 34342a022a..25c6996820 100644
--- a/nifi-assembly/pom.xml
+++ b/nifi-assembly/pom.xml
@@ -284,12 +284,6 @@ language governing permissions and limitations under the 
License. -->
             <version>2.0.0-SNAPSHOT</version>
             <type>nar</type>
         </dependency>
-        <dependency>
-            <groupId>org.apache.nifi</groupId>
-            <artifactId>nifi-datadog-nar</artifactId>
-            <version>2.0.0-SNAPSHOT</version>
-            <type>nar</type>
-        </dependency>
         <dependency>
             <groupId>org.apache.nifi</groupId>
             <artifactId>nifi-standard-nar</artifactId>
diff --git a/nifi-code-coverage/pom.xml b/nifi-code-coverage/pom.xml
index 6265d496b0..0b389fa484 100644
--- a/nifi-code-coverage/pom.xml
+++ b/nifi-code-coverage/pom.xml
@@ -867,11 +867,6 @@
             <artifactId>nifi-couchbase-services-api</artifactId>
             <version>2.0.0-SNAPSHOT</version>
         </dependency>
-        <dependency>
-            <groupId>org.apache.nifi</groupId>
-            <artifactId>nifi-datadog-reporting-task</artifactId>
-            <version>2.0.0-SNAPSHOT</version>
-        </dependency>
         <dependency>
             <groupId>org.apache.nifi</groupId>
             <artifactId>nifi-dropbox-processors</artifactId>
diff --git 
a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-nar/pom.xml 
b/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-nar/pom.xml
deleted file mode 100644
index b2c4769757..0000000000
--- a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-nar/pom.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<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 
https://maven.apache.org/xsd/maven-4.0.0.xsd";>
-    <!--
-  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.
--->
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>org.apache.nifi</groupId>
-        <artifactId>nifi-datadog-bundle</artifactId>
-        <version>2.0.0-SNAPSHOT</version>
-    </parent>
-
-    <artifactId>nifi-datadog-nar</artifactId>
-    <packaging>nar</packaging>
-
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.nifi</groupId>
-            <artifactId>nifi-datadog-reporting-task</artifactId>
-            <version>2.0.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.nifi</groupId>
-            <artifactId>nifi-standard-shared-nar</artifactId>
-            <version>2.0.0-SNAPSHOT</version>
-            <type>nar</type>
-        </dependency>
-    </dependencies>
-</project>
diff --git 
a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-nar/src/main/resources/META-INF/LICENSE
 
b/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-nar/src/main/resources/META-INF/LICENSE
deleted file mode 100644
index b7b067d073..0000000000
--- 
a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-nar/src/main/resources/META-INF/LICENSE
+++ /dev/null
@@ -1,262 +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.
-
-APACHE NIFI SUBCOMPONENTS:
-
-The Apache NiFi project contains subcomponents with separate copyright
-notices and license terms. Your use of the source code for the these
-subcomponents is subject to the terms and conditions of the following
-licenses.
-
-
-This project bundles 'metrics-datadog' which is available
-under a "Simplified BSD license".
-
-    Copyright (c) 2014, Vistar Media
-    All rights reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions are met:
-
-        * Redistributions of source code must retain the above copyright 
notice,
-          this list of conditions and the following disclaimer.
-        * Redistributions in binary form must reproduce the above copyright 
notice,
-          this list of conditions and the following disclaimer in the 
documentation
-          and/or other materials provided with the distribution.
-        * Neither the name of Vistar Media nor the names of its contributors
-          may be used to endorse or promote products derived from this software
-          without specific prior written permission.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-    AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 
ARE
-    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
-    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-    SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-    CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
LIABILITY,
-    OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE 
USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-The binary distribution of this project bundles "Java-DogStatsd-client"
-under an MIT style license.
-
-    java-statsd-client. Copyright (C) 2012 youDevise, Ltd.
-
-    Permission is hereby granted, free of charge, to any person obtaining a 
copy
-    of this software and associated documentation files (the "Software"), to 
deal
-    in the Software without restriction, including without limitation the 
rights
-    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-    copies of the Software, and to permit persons to whom the Software is
-    furnished to do so, subject to the following conditions:
-
-    The above copyright notice and this permission notice shall be included in
-    all copies or substantial portions of the Software.
-
-    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 
FROM,
-    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-    THE SOFTWARE.
\ No newline at end of file
diff --git 
a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-nar/src/main/resources/META-INF/NOTICE
 
b/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-nar/src/main/resources/META-INF/NOTICE
deleted file mode 100644
index 6e91d283e3..0000000000
--- 
a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-nar/src/main/resources/META-INF/NOTICE
+++ /dev/null
@@ -1,106 +0,0 @@
-nifi-ambari-nar
-Copyright 2015-2020 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) Dropwizard Metrics
-    The following NOTICE information applies:
-      Metrics
-      Copyright 2010-2013 Coda Hale and Yammer, Inc., 2014-2017 Dropwizard Team
-      This product includes software developed by Coda Hale and Yammer, Inc.
-
-      This product includes code derived from the JSR-166 project 
(ThreadLocalRandom, Striped64,
-      LongAdder), which was released with the following comments:
-
-          Written by Doug Lea with assistance from members of JCP JSR-166
-          Expert Group and released to the public domain, as explained at
-          http://creativecommons.org/publicdomain/zero/1.0/
-
-      The derived work in the nifi-metrics module is adapted from
-        
https://github.com/dropwizard/metrics/blob/v2.2.0/metrics-core/src/main/java/com/yammer/metrics/core/VirtualMachineMetrics.java
-      and can be found in
-        
nifi-commons/nifi-metrics/src/main/java/org/apache/nifi/metrics/jvm/JvmMetrics.java
-        
nifi-commons/nifi-metrics/src/main/java/org/apache/nifi/metrics/jvm/JmxJvmMetrics.java
-
-  (ASLv2) Apache Commons Lang
-    The following NOTICE information applies:
-      Apache Commons Lang
-      Copyright 2001-2015 The Apache Software Foundation
-
-  (ASLv2) Apache Commons IO
-    The following NOTICE information applies:
-      Apache Commons IO
-      Copyright 2002-2016 The Apache Software Foundation
-
-  (ASLv2) Apache HttpComponents Client
-    The following NOTICE information applies:
-      Apache HttpComponents Client
-      Copyright 1999-2016 The Apache Software Foundation
-
-  (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 ([email protected])
-
-      
===============================================================================
-
-      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) Jackson JSON processor
-    The following NOTICE information applies:
-      # Jackson JSON processor
-
-      Jackson is a high-performance, Free/Open Source JSON processing library.
-      It was originally written by Tatu Saloranta ([email protected]), and 
has
-      been in development since 2007.
-      It is currently developed by a community of developers, as well as 
supported
-      commercially by FasterXML.com.
-
-      ## Licensing
-
-      Jackson core and extension components may licensed under different 
licenses.
-      To find the details that apply to this artifact see the accompanying 
LICENSE file.
-      For more information, including possible other licensing options, contact
-      FasterXML.com (http://fasterxml.com).
-
-      ## Credits
-
-      A list of contributors may be found from CREDITS file, which is included
-      in some artifacts (usually source distributions); but is always available
-      from the source code management (SCM) system project uses.
-
-************************
-Common Development and Distribution License 1.1
-************************
-
-The following binary components are provided under the Common Development and 
Distribution License 1.1. See project link for details.
-
-    (CDDL 1.1) (GPL2 w/ CPE) JSON Processing API 
(javax.json:javax.json-api:jar:1.0 - http://json-processing-spec.java.net)
-    (CDDL 1.1) (GPL2 w/ CPE) JSON Processing Default Provider 
(org.glassfish:javax.json:jar:1.0.4 - https://jsonp.java.net)
-    (CDDL 1.1) (GPL2 w/ CPE) OSGi resource locator bundle 
(org.glassfish.hk2:osgi-resource-locator:jar:1.0.1 - 
http://glassfish.org/osgi-resource-locator)
-    (CDDL 1.1) (GPL2 w/ CPE) javax.annotation API 
(javax.annotation:javax.annotation-api:jar:1.2 - 
http://jcp.org/en/jsr/detail?id=250)
-    (CDDL 1.1) (GPL2 w/ CPE) HK2 API module 
(org.glassfish.hk2:hk2-api:jar:2.4.0-b25 - https://hk2.java.net/hk2-api)
-    (CDDL 1.1) (GPL2 w/ CPE) ServiceLocator Default Implementation 
(org.glassfish.hk2:hk2-locator:jar:2.4.0-b25 - https://hk2.java.net/hk2-locator)
-    (CDDL 1.1) (GPL2 w/ CPE) HK2 Implementation Utilities 
(org.glassfish.hk2:hk2-utils:jar:2.4.0-b25 - https://hk2.java.net/hk2-utils)
-    (CDDL 1.1) (GPL2 w/ CPE) aopalliance version 1.0 repackaged as a module 
(org.glassfish.hk2.external:aopalliance-repackaged:jar:2.4.0-b25 - 
https://hk2.java.net/external/aopalliance-repackaged)
-    (CDDL 1.1) (GPL2 w/ CPE) javax.inject:1 as OSGi bundle 
(org.glassfish.hk2.external:javax.inject:jar:2.4.0-b25 - 
https://hk2.java.net/external/javax.inject)
-    (CDDL 1.1) (GPL2 w/ CPE) javax.ws.rs-api 
(javax.ws.rs:javax.ws.rs-api:jar:2.0.1 - http://jax-rs-spec.java.net)
-    (CDDL 1.1) (GPL2 w/ CPE) jersey-guava 
(org.glassfish.jersey.bundles.repackaged:jersey-guava:bundle:2.19 - 
https://jersey.java.net/project/project/jersey-guava/)
-    (CDDL 1.1) (GPL2 w/ CPE) jersey-core-client 
(org.glassfish.jersey.core:jersey-client:jar:2.19 - 
https://jersey.java.net/jersey-client/)
-    (CDDL 1.1) (GPL2 w/ CPE) jersey-core-common 
(org.glassfish.jersey.core:jersey-common:jar:2.19 - 
https://jersey.java.net/jersey-common/)
-
diff --git 
a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/pom.xml
 
b/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/pom.xml
deleted file mode 100644
index 6f85e74a69..0000000000
--- 
a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/pom.xml
+++ /dev/null
@@ -1,72 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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 
https://maven.apache.org/xsd/maven-4.0.0.xsd";>
-    <!--
-  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.
--->
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>org.apache.nifi</groupId>
-        <artifactId>nifi-datadog-bundle</artifactId>
-        <version>2.0.0-SNAPSHOT</version>
-    </parent>
-
-    <artifactId>nifi-datadog-reporting-task</artifactId>
-    <description>Publishes NiFi metrics to datadog</description>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.glassfish.jersey.core</groupId>
-            <artifactId>jersey-client</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.glassfish</groupId>
-            <artifactId>javax.json</artifactId>
-            <version>1.1.4</version>
-        </dependency>
-        <dependency>
-            <groupId>javax.json</groupId>
-            <artifactId>javax.json-api</artifactId>
-            <version>1.1.4</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.nifi</groupId>
-            <artifactId>nifi-metrics</artifactId>
-            <version>2.0.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>io.dropwizard.metrics</groupId>
-            <artifactId>metrics-core</artifactId>
-            <version>4.2.25</version>
-        </dependency>
-        <dependency>
-            <groupId>org.coursera</groupId>
-            <artifactId>metrics-datadog</artifactId>
-            <version>1.1.14</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>com.fasterxml.jackson.core</groupId>
-                    <artifactId>jackson-databind</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>commons-logging</groupId>
-                    <artifactId>commons-logging</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>com.fasterxml.jackson.core</groupId>
-            <artifactId>jackson-databind</artifactId>
-        </dependency>
-    </dependencies>
-</project>
diff --git 
a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/main/java/org/apache/nifi/reporting/datadog/DDMetricRegistryBuilder.java
 
b/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/main/java/org/apache/nifi/reporting/datadog/DDMetricRegistryBuilder.java
deleted file mode 100644
index f53604d344..0000000000
--- 
a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/main/java/org/apache/nifi/reporting/datadog/DDMetricRegistryBuilder.java
+++ /dev/null
@@ -1,84 +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 org.apache.nifi.reporting.datadog;
-
-import com.codahale.metrics.MetricRegistry;
-import org.coursera.metrics.datadog.DatadogReporter;
-import org.coursera.metrics.datadog.transport.HttpTransport;
-import org.coursera.metrics.datadog.transport.Transport;
-import org.coursera.metrics.datadog.transport.UdpTransport;
-
-import java.io.IOException;
-import java.net.InetAddress;
-
-/**
- * Class configures MetricRegistry (passed outside or created from scratch) 
with Datadog support
- */
-public class DDMetricRegistryBuilder {
-
-
-    private MetricRegistry metricRegistry = null;
-    private DatadogReporter datadogReporter;
-    private String apiKey = "";
-    private Transport transport;
-
-    public DDMetricRegistryBuilder setMetricRegistry(MetricRegistry 
metricRegistry) {
-        this.metricRegistry = metricRegistry;
-        return this;
-    }
-
-    public DatadogReporter getDatadogReporter() {
-        return datadogReporter;
-    }
-
-    public MetricRegistry build(String apiKey) throws IOException {
-        if (metricRegistry == null)
-            metricRegistry = new MetricRegistry();
-
-        if (createTransport(apiKey)) {
-            datadogReporter = createDatadogReporter(this.metricRegistry);
-        }
-        return this.metricRegistry;
-    }
-
-    private boolean createTransport(String apiKey) {
-        //if api key was not changed
-        if (this.apiKey.equals(apiKey)) {
-            return false;
-        } else if (apiKey.equals("agent")) {
-            this.apiKey = "agent";
-            transport = new UdpTransport.Builder().build();
-            return true;
-        } else {
-            this.apiKey = apiKey;
-            transport = new HttpTransport.Builder().withApiKey(apiKey).build();
-            return true;
-        }
-    }
-
-    /*
-     * create DataDog reporter
-     */
-    private DatadogReporter createDatadogReporter(MetricRegistry 
metricRegistry) throws IOException {
-        DatadogReporter reporter =
-                DatadogReporter.forRegistry(metricRegistry)
-                        .withHost(InetAddress.getLocalHost().getHostName())
-                        .withTransport(transport)
-                        .build();
-        return reporter;
-    }
-}
diff --git 
a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/main/java/org/apache/nifi/reporting/datadog/DataDogReportingTask.java
 
b/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/main/java/org/apache/nifi/reporting/datadog/DataDogReportingTask.java
deleted file mode 100644
index 1cf18d1a8d..0000000000
--- 
a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/main/java/org/apache/nifi/reporting/datadog/DataDogReportingTask.java
+++ /dev/null
@@ -1,269 +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 org.apache.nifi.reporting.datadog;
-
-import com.codahale.metrics.Gauge;
-import com.codahale.metrics.MetricRegistry;
-import org.apache.nifi.annotation.documentation.CapabilityDescription;
-import org.apache.nifi.annotation.documentation.Tags;
-import org.apache.nifi.annotation.lifecycle.OnScheduled;
-import org.apache.nifi.components.AllowableValue;
-import org.apache.nifi.components.PropertyDescriptor;
-import org.apache.nifi.controller.ConfigurationContext;
-import org.apache.nifi.controller.status.ConnectionStatus;
-import org.apache.nifi.controller.status.PortStatus;
-import org.apache.nifi.controller.status.ProcessGroupStatus;
-import org.apache.nifi.controller.status.ProcessorStatus;
-import org.apache.nifi.expression.ExpressionLanguageScope;
-import org.apache.nifi.metrics.jvm.JmxJvmMetrics;
-import org.apache.nifi.processor.util.StandardValidators;
-import org.apache.nifi.reporting.AbstractReportingTask;
-import org.apache.nifi.reporting.ReportingContext;
-import org.apache.nifi.reporting.datadog.metrics.MetricsService;
-import org.coursera.metrics.datadog.DynamicTagsCallback;
-import java.io.IOException;
-import java.util.Collections;
-import java.util.Map;
-import java.util.HashMap;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.ConcurrentHashMap;
-
-@Tags({"reporting", "datadog", "metrics"})
-@CapabilityDescription("Publishes metrics from NiFi to datadog. For accurate 
and informative reporting, components should have unique names.")
-public class DataDogReportingTask extends AbstractReportingTask {
-
-    static final AllowableValue DATADOG_AGENT = new AllowableValue("Datadog 
Agent", "Datadog Agent",
-            "Metrics will be sent via locally installed Datadog agent. " +
-                    "Datadog agent needs to be installed manually before using 
this option");
-
-    static final AllowableValue DATADOG_HTTP = new AllowableValue("Datadog 
HTTP", "Datadog HTTP",
-            "Metrics will be sent via HTTP transport with no need of Agent 
installed. " +
-                    "Datadog API key needs to be set");
-
-    static final PropertyDescriptor DATADOG_TRANSPORT = new 
PropertyDescriptor.Builder()
-            .name("Datadog transport")
-            .description("Transport through which metrics will be sent to 
Datadog")
-            .required(true)
-            .allowableValues(DATADOG_AGENT, DATADOG_HTTP)
-            .defaultValue(DATADOG_HTTP.getValue())
-            .build();
-
-    static final PropertyDescriptor API_KEY = new PropertyDescriptor.Builder()
-            .name("API key")
-            .description("Datadog API key. If specified value is 'agent', 
local Datadog agent will be used.")
-            .required(false)
-            .sensitive(true)
-            .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
-            .build();
-
-    static final PropertyDescriptor METRICS_PREFIX = new 
PropertyDescriptor.Builder()
-            .name("Metrics prefix")
-            .description("Prefix to be added before every metric")
-            .required(true)
-            .expressionLanguageSupported(ExpressionLanguageScope.ENVIRONMENT)
-            .defaultValue("nifi")
-            .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
-            .build();
-
-    static final PropertyDescriptor ENVIRONMENT = new 
PropertyDescriptor.Builder()
-            .name("Environment")
-            .description("Environment, dataflow is running in. " +
-                    "This property will be included as metrics tag.")
-            .required(true)
-            .expressionLanguageSupported(ExpressionLanguageScope.ENVIRONMENT)
-            .defaultValue("dev")
-            .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
-            .build();
-
-    private MetricsService metricsService;
-    private DDMetricRegistryBuilder ddMetricRegistryBuilder;
-    private MetricRegistry metricRegistry;
-    private String metricsPrefix;
-    private String environment;
-    private ConcurrentHashMap<String, Double> metricsMap;
-    private Map<String, String> defaultTags;
-    private volatile JmxJvmMetrics virtualMachineMetrics;
-
-    @OnScheduled
-    public void setup(final ConfigurationContext context) {
-        metricsService = getMetricsService();
-        ddMetricRegistryBuilder = getMetricRegistryBuilder();
-        metricRegistry = getMetricRegistry();
-        metricsMap = getMetricsMap();
-        metricsPrefix = METRICS_PREFIX.getDefaultValue();
-        environment = ENVIRONMENT.getDefaultValue();
-        virtualMachineMetrics = JmxJvmMetrics.getInstance();
-        ddMetricRegistryBuilder.setMetricRegistry(metricRegistry);
-    }
-
-    @Override
-    protected List<PropertyDescriptor> getSupportedPropertyDescriptors() {
-        final List<PropertyDescriptor> properties = new ArrayList<>();
-        properties.add(METRICS_PREFIX);
-        properties.add(ENVIRONMENT);
-        properties.add(API_KEY);
-        properties.add(DATADOG_TRANSPORT);
-        return properties;
-    }
-
-    @Override
-    public void onTrigger(ReportingContext context) {
-        final ProcessGroupStatus status = 
context.getEventAccess().getControllerStatus();
-
-        metricsPrefix = 
context.getProperty(METRICS_PREFIX).evaluateAttributeExpressions().getValue();
-        environment = 
context.getProperty(ENVIRONMENT).evaluateAttributeExpressions().getValue();
-        final Map<String, String> tags = new HashMap<>();
-        tags.put("env", environment);
-        tags.put("dataflow_id", status.getId());
-        defaultTags = Collections.unmodifiableMap(tags);
-        try {
-            updateDataDogTransport(context);
-        } catch (IOException e) {
-            getLogger().warn("Unable to update data dog transport", e);
-        }
-        updateAllMetricGroups(status);
-        ddMetricRegistryBuilder.getDatadogReporter().report();
-    }
-
-    protected void updateMetrics(Map<String, Double> metrics, Map<String, 
String> tags) {
-        for (Map.Entry<String, Double> entry : metrics.entrySet()) {
-            final String metricName = buildMetricName(entry.getKey());
-            getLogger().debug("Metric [{}] Value [{}]", metricName, 
entry.getValue());
-            //if metric is not registered yet - register it
-            if (!metricsMap.containsKey(metricName)) {
-                metricsMap.put(metricName, entry.getValue());
-                metricRegistry.register(metricName, new 
MetricGauge(metricName, tags));
-            }
-            //set real time value to metrics map
-            metricsMap.put(metricName, entry.getValue());
-        }
-    }
-
-    private void updateAllMetricGroups(ProcessGroupStatus processGroupStatus) {
-        final List<ProcessorStatus> processorStatuses = new ArrayList<>();
-        populateProcessorStatuses(processGroupStatus, processorStatuses);
-        for (final ProcessorStatus processorStatus : processorStatuses) {
-            final Map<String, String> processorTags = new 
HashMap<>(defaultTags);
-            
processorTags.putAll(metricsService.getProcessorTags(processorStatus));
-            updateMetrics(metricsService.getProcessorMetrics(processorStatus), 
processorTags);
-        }
-
-        final List<ConnectionStatus> connectionStatuses = new ArrayList<>();
-        populateConnectionStatuses(processGroupStatus, connectionStatuses);
-        for (ConnectionStatus connectionStatus: connectionStatuses) {
-            
updateMetrics(metricsService.getConnectionStatusMetrics(connectionStatus), 
defaultTags);
-        }
-
-        final List<PortStatus> inputPortStatuses = new ArrayList<>();
-        populateInputPortStatuses(processGroupStatus, inputPortStatuses);
-        for (PortStatus portStatus: inputPortStatuses) {
-            updateMetrics(metricsService.getPortStatusMetrics(portStatus), 
defaultTags);
-        }
-
-        final List<PortStatus> outputPortStatuses = new ArrayList<>();
-        populateOutputPortStatuses(processGroupStatus, outputPortStatuses);
-        for (PortStatus portStatus: outputPortStatuses) {
-            updateMetrics(metricsService.getPortStatusMetrics(portStatus), 
defaultTags);
-        }
-
-        updateMetrics(metricsService.getJVMMetrics(virtualMachineMetrics), 
defaultTags);
-        updateMetrics(metricsService.getDataFlowMetrics(processGroupStatus), 
defaultTags);
-    }
-
-    private class MetricGauge implements Gauge<Object>, DynamicTagsCallback {
-        private final Map<String, String> tags;
-        private final String metricName;
-
-        public MetricGauge(String metricName, Map<String, String> tagsMap) {
-            this.tags = tagsMap;
-            this.metricName = metricName;
-        }
-
-        @Override
-        public Object getValue() {
-            return metricsMap.get(metricName);
-        }
-
-        @Override
-        public List<String> getTags() {
-            List<String> tagsList = new ArrayList<>();
-            for (Map.Entry<String, String> entry : tags.entrySet()) {
-                tagsList.add(entry.getKey() + ":" + entry.getValue());
-            }
-            return tagsList;
-        }
-    }
-
-    private void updateDataDogTransport(ReportingContext context) throws 
IOException {
-        String dataDogTransport = 
context.getProperty(DATADOG_TRANSPORT).getValue();
-        if (dataDogTransport.equalsIgnoreCase(DATADOG_AGENT.getValue())) {
-            ddMetricRegistryBuilder.build("agent");
-        } else if (dataDogTransport.equalsIgnoreCase(DATADOG_HTTP.getValue())
-                && context.getProperty(API_KEY).isSet()) {
-            
ddMetricRegistryBuilder.build(context.getProperty(API_KEY).getValue());
-        }
-    }
-
-    private void populateProcessorStatuses(final ProcessGroupStatus 
groupStatus, final List<ProcessorStatus> statuses) {
-        statuses.addAll(groupStatus.getProcessorStatus());
-        for (final ProcessGroupStatus childGroupStatus : 
groupStatus.getProcessGroupStatus()) {
-            populateProcessorStatuses(childGroupStatus, statuses);
-        }
-    }
-
-    private void populateConnectionStatuses(final ProcessGroupStatus 
groupStatus, final List<ConnectionStatus> statuses) {
-        statuses.addAll(groupStatus.getConnectionStatus());
-        for (final ProcessGroupStatus childGroupStatus : 
groupStatus.getProcessGroupStatus()) {
-            populateConnectionStatuses(childGroupStatus, statuses);
-        }
-    }
-
-    private void populateInputPortStatuses(final ProcessGroupStatus 
groupStatus, final List<PortStatus> statuses) {
-        statuses.addAll(groupStatus.getInputPortStatus());
-        for (final ProcessGroupStatus childGroupStatus : 
groupStatus.getProcessGroupStatus()) {
-            populateInputPortStatuses(childGroupStatus, statuses);
-        }
-    }
-
-    private void populateOutputPortStatuses(final ProcessGroupStatus 
groupStatus, final List<PortStatus> statuses) {
-        statuses.addAll(groupStatus.getOutputPortStatus());
-        for (final ProcessGroupStatus childGroupStatus : 
groupStatus.getProcessGroupStatus()) {
-            populateOutputPortStatuses(childGroupStatus, statuses);
-        }
-    }
-
-    private String buildMetricName(String metricName) {
-        return metricsPrefix + "." + metricName;
-    }
-
-    protected MetricsService getMetricsService() {
-        return new MetricsService();
-    }
-
-    protected DDMetricRegistryBuilder getMetricRegistryBuilder() {
-        return new DDMetricRegistryBuilder();
-    }
-
-    protected MetricRegistry getMetricRegistry() {
-        return new MetricRegistry();
-    }
-
-    protected ConcurrentHashMap<String, Double> getMetricsMap() {
-        return new ConcurrentHashMap<>();
-    }
-}
diff --git 
a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/main/java/org/apache/nifi/reporting/datadog/api/MetricBuilder.java
 
b/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/main/java/org/apache/nifi/reporting/datadog/api/MetricBuilder.java
deleted file mode 100644
index d5de4c7083..0000000000
--- 
a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/main/java/org/apache/nifi/reporting/datadog/api/MetricBuilder.java
+++ /dev/null
@@ -1,84 +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 org.apache.nifi.reporting.datadog.api;
-
-import javax.json.JsonBuilderFactory;
-import javax.json.JsonObject;
-
-/**
- * Builds the JsonObject for an individual metric.
- */
-public class MetricBuilder {
-
-    private final JsonBuilderFactory factory;
-
-    private String applicationId;
-    private String instanceId;
-    private String hostname;
-    private String timestamp;
-    private String metricName;
-    private String metricValue;
-
-    public MetricBuilder(final JsonBuilderFactory factory) {
-        this.factory = factory;
-    }
-
-    public MetricBuilder applicationId(final String applicationId) {
-        this.applicationId = applicationId;
-        return this;
-    }
-
-    public MetricBuilder instanceId(final String instanceId) {
-        this.instanceId = instanceId;
-        return this;
-    }
-
-    public MetricBuilder hostname(final String hostname) {
-        this.hostname = hostname;
-        return this;
-    }
-
-    public MetricBuilder timestamp(final long timestamp) {
-        this.timestamp = String.valueOf(timestamp);
-        return this;
-    }
-
-    public MetricBuilder metricName(final String metricName) {
-        this.metricName = metricName;
-        return this;
-    }
-
-    public MetricBuilder metricValue(final String metricValue) {
-        this.metricValue = metricValue;
-        return this;
-    }
-
-    public JsonObject build() {
-        return factory.createObjectBuilder()
-                .add(MetricFields.METRIC_NAME, metricName)
-                .add(MetricFields.APP_ID, applicationId)
-                .add(MetricFields.INSTANCE_ID, instanceId)
-                .add(MetricFields.HOSTNAME, hostname)
-                .add(MetricFields.TIMESTAMP, timestamp)
-                .add(MetricFields.START_TIME, timestamp)
-                .add(MetricFields.METRICS,
-                        factory.createObjectBuilder()
-                                .add(String.valueOf(timestamp), metricValue)
-                ).build();
-    }
-
-}
diff --git 
a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/main/java/org/apache/nifi/reporting/datadog/api/MetricFields.java
 
b/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/main/java/org/apache/nifi/reporting/datadog/api/MetricFields.java
deleted file mode 100644
index df0291da63..0000000000
--- 
a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/main/java/org/apache/nifi/reporting/datadog/api/MetricFields.java
+++ /dev/null
@@ -1,29 +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 org.apache.nifi.reporting.datadog.api;
-
-public interface MetricFields {
-
-    String METRIC_NAME = "metricname";
-    String APP_ID = "appid";
-    String INSTANCE_ID = "instanceid";
-    String HOSTNAME = "hostname";
-    String TIMESTAMP = "timestamp";
-    String START_TIME = "starttime";
-    String METRICS = "metrics";
-
-}
diff --git 
a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/main/java/org/apache/nifi/reporting/datadog/api/MetricsBuilder.java
 
b/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/main/java/org/apache/nifi/reporting/datadog/api/MetricsBuilder.java
deleted file mode 100644
index 3aa13b0612..0000000000
--- 
a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/main/java/org/apache/nifi/reporting/datadog/api/MetricsBuilder.java
+++ /dev/null
@@ -1,93 +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 org.apache.nifi.reporting.datadog.api;
-
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonBuilderFactory;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * Builds the overall JsonObject for the Metrics.
- */
-public class MetricsBuilder {
-
-    static final String ROOT_JSON_ELEMENT = "metrics";
-
-    private final JsonBuilderFactory factory;
-
-    private long timestamp;
-    private String applicationId;
-    private String instanceId;
-    private String hostname;
-    private Map<String,String> metrics = new HashMap<>();
-
-    public MetricsBuilder(final JsonBuilderFactory factory) {
-        this.factory = factory;
-    }
-
-    public MetricsBuilder applicationId(final String applicationId) {
-        this.applicationId = applicationId;
-        return this;
-    }
-
-    public MetricsBuilder instanceId(final String instanceId) {
-        this.instanceId = instanceId;
-        return this;
-    }
-
-    public MetricsBuilder hostname(final String hostname) {
-        this.hostname = hostname;
-        return this;
-    }
-
-    public MetricsBuilder timestamp(final long timestamp) {
-        this.timestamp = timestamp;
-        return this;
-    }
-
-    public MetricsBuilder metric(final String name, String value) {
-        this.metrics.put(name, value);
-        return this;
-    }
-
-    public MetricsBuilder addAllMetrics(final Map<String,String> metrics) {
-        this.metrics.putAll(metrics);
-        return this;
-    }
-
-    public JsonObject build() {
-        // builds JsonObject for individual metrics
-        final MetricBuilder metricBuilder = new MetricBuilder(factory);
-        
metricBuilder.instanceId(instanceId).applicationId(applicationId).timestamp(timestamp).hostname(hostname);
-
-        final JsonArrayBuilder metricArrayBuilder = 
factory.createArrayBuilder();
-
-        for (Map.Entry<String,String> entry : metrics.entrySet()) {
-            
metricBuilder.metricName(entry.getKey()).metricValue(entry.getValue());
-            metricArrayBuilder.add(metricBuilder.build());
-        }
-
-        // add the array of metrics to a top-level json object
-        final JsonObjectBuilder metricsBuilder = factory.createObjectBuilder();
-        metricsBuilder.add(ROOT_JSON_ELEMENT, metricArrayBuilder);
-        return metricsBuilder.build();
-    }
-
-}
diff --git 
a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/main/java/org/apache/nifi/reporting/datadog/metrics/MetricNames.java
 
b/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/main/java/org/apache/nifi/reporting/datadog/metrics/MetricNames.java
deleted file mode 100644
index 58f5e3476a..0000000000
--- 
a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/main/java/org/apache/nifi/reporting/datadog/metrics/MetricNames.java
+++ /dev/null
@@ -1,60 +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 org.apache.nifi.reporting.datadog.metrics;
-
-/**
- * The Metric names to send to DataDog.
- */
-public interface MetricNames {
-
-    // NiFi Metrics
-    String FLOW_FILES_RECEIVED = "FlowFilesReceivedLast5Minutes";
-    String BYTES_RECEIVED = "BytesReceivedLast5Minutes";
-    String FLOW_FILES_SENT = "FlowFilesSentLast5Minutes";
-    String BYTES_SENT = "BytesSentLast5Minutes";
-    String FLOW_FILES_QUEUED = "FlowFilesQueued";
-    String BYTES_QUEUED = "BytesQueued";
-    String BYTES_READ = "BytesReadLast5Minutes";
-    String BYTES_WRITTEN = "BytesWrittenLast5Minutes";
-    String ACTIVE_THREADS = "ActiveThreads";
-    String TOTAL_TASK_DURATION = "TotalTaskDurationSeconds";
-
-    // JVM Metrics
-    String JVM_UPTIME = "jvm.uptime";
-    String JVM_HEAP_USED = "jvm.heap_used";
-    String JVM_HEAP_USAGE = "jvm.heap_usage";
-    String JVM_NON_HEAP_USAGE = "jvm.non_heap_usage";
-    String JVM_THREAD_STATES_RUNNABLE = "jvm.thread_states.runnable";
-    String JVM_THREAD_STATES_BLOCKED = "jvm.thread_states.blocked";
-    String JVM_THREAD_STATES_TIMED_WAITING = "jvm.thread_states.timed_waiting";
-    String JVM_THREAD_STATES_TERMINATED = "jvm.thread_states.terminated";
-    String JVM_THREAD_COUNT = "jvm.thread_count";
-    String JVM_DAEMON_THREAD_COUNT = "jvm.daemon_thread_count";
-    String JVM_FILE_DESCRIPTOR_USAGE = "jvm.file_descriptor_usage";
-    String JVM_GC_RUNS = "jvm.gc.runs";
-    String JVM_GC_TIME = "jvm.gc.time";
-
-    // Port status metrics
-    String INPUT_COUNT = "InputCount";
-    String INPUT_BYTES = "InputBytes";
-    String OUTPUT_COUNT = "OutputCount";
-    String OUTPUT_BYTES = "OutputBytes";
-
-    //Connection status metrics
-    String QUEUED_COUNT = "QueuedCount";
-    String QUEUED_BYTES = "QueuedBytes";
-}
diff --git 
a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/main/java/org/apache/nifi/reporting/datadog/metrics/MetricsService.java
 
b/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/main/java/org/apache/nifi/reporting/datadog/metrics/MetricsService.java
deleted file mode 100644
index b46b3ceefc..0000000000
--- 
a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/main/java/org/apache/nifi/reporting/datadog/metrics/MetricsService.java
+++ /dev/null
@@ -1,155 +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 org.apache.nifi.reporting.datadog.metrics;
-
-import org.apache.nifi.controller.status.ConnectionStatus;
-import org.apache.nifi.controller.status.PortStatus;
-import org.apache.nifi.controller.status.ProcessGroupStatus;
-import org.apache.nifi.controller.status.ProcessorStatus;
-import org.apache.nifi.metrics.jvm.JmxJvmMetrics;
-import org.apache.nifi.processor.DataUnit;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.concurrent.TimeUnit;
-
-/**
- * A service used to produce key/value metrics based on a given input.
- */
-public class MetricsService {
-
-    //processor - specific metrics
-    public Map<String, Double> getProcessorMetrics(ProcessorStatus status) {
-        final Map<String, Double> metrics = new HashMap<>();
-        metrics.put(MetricNames.FLOW_FILES_RECEIVED, 
Double.valueOf(status.getInputCount()));
-        metrics.put(MetricNames.FLOW_FILES_SENT, 
Double.valueOf(status.getOutputCount()));
-        metrics.put(MetricNames.BYTES_READ, 
Double.valueOf(status.getInputBytes()));
-        metrics.put(MetricNames.BYTES_WRITTEN, 
Double.valueOf(status.getOutputBytes()));
-        metrics.put(MetricNames.ACTIVE_THREADS, 
Double.valueOf(status.getActiveThreadCount()));
-        metrics.put(MetricNames.TOTAL_TASK_DURATION, 
Double.valueOf(status.getProcessingNanos()));
-        return metrics;
-    }
-
-    public Map<String, String> getProcessorTags(ProcessorStatus status) {
-        Map<String, String> tags = new HashMap<>();
-        tags.put("processor", status.getName());
-        return tags;
-    }
-
-    public Map<String, Double> getPortStatusMetrics(PortStatus status){
-        final Map<String, Double> metrics = new HashMap<>();
-        metrics.put(MetricNames.ACTIVE_THREADS, 
Double.valueOf(status.getActiveThreadCount()));
-        metrics.put(MetricNames.INPUT_COUNT, 
Double.valueOf(status.getInputCount()));
-        metrics.put(MetricNames.OUTPUT_COUNT, 
Double.valueOf(status.getOutputCount()));
-        metrics.put(MetricNames.INPUT_BYTES, 
Double.valueOf(status.getInputBytes()));
-        metrics.put(MetricNames.OUTPUT_BYTES, 
Double.valueOf(status.getOutputBytes()));
-        metrics.put(MetricNames.FLOW_FILES_RECEIVED, 
Double.valueOf(status.getFlowFilesReceived()));
-        metrics.put(MetricNames.FLOW_FILES_SENT, 
Double.valueOf(status.getFlowFilesSent()));
-        metrics.put(MetricNames.BYTES_RECEIVED, 
Double.valueOf(status.getBytesReceived()));
-        metrics.put(MetricNames.BYTES_SENT, 
Double.valueOf(status.getBytesSent()));
-        return metrics;
-    }
-
-    public Map<String, Double> getConnectionStatusMetrics(ConnectionStatus 
status) {
-        final Map<String, Double> metrics = new HashMap<>();
-        metrics.put(MetricNames.INPUT_COUNT, 
Double.valueOf(status.getInputCount()));
-        metrics.put(MetricNames.INPUT_BYTES, 
Double.valueOf(status.getInputBytes()));
-        metrics.put(MetricNames.QUEUED_COUNT, 
Double.valueOf(status.getQueuedCount()));
-        metrics.put(MetricNames.QUEUED_BYTES, 
Double.valueOf(status.getQueuedBytes()));
-        metrics.put(MetricNames.OUTPUT_COUNT, 
Double.valueOf(status.getOutputCount()));
-        metrics.put(MetricNames.OUTPUT_BYTES, 
Double.valueOf(status.getOutputBytes()));
-        return metrics;
-    }
-
-
-    //general metrics for whole dataflow
-    public Map<String, Double> getDataFlowMetrics(ProcessGroupStatus status) {
-        final Map<String, Double> metrics = new HashMap<>();
-        metrics.put(MetricNames.FLOW_FILES_RECEIVED, 
Double.valueOf(status.getFlowFilesReceived()));
-        metrics.put(MetricNames.BYTES_RECEIVED, 
Double.valueOf(status.getBytesReceived()));
-        metrics.put(MetricNames.FLOW_FILES_SENT, 
Double.valueOf(status.getFlowFilesSent()));
-        metrics.put(MetricNames.BYTES_SENT, 
Double.valueOf(status.getBytesSent()));
-        metrics.put(MetricNames.FLOW_FILES_QUEUED, 
Double.valueOf(status.getQueuedCount()));
-        metrics.put(MetricNames.BYTES_QUEUED, 
Double.valueOf(status.getQueuedContentSize()));
-        metrics.put(MetricNames.BYTES_READ, 
Double.valueOf(status.getBytesRead()));
-        metrics.put(MetricNames.BYTES_WRITTEN, 
Double.valueOf(status.getBytesWritten()));
-        metrics.put(MetricNames.ACTIVE_THREADS, 
Double.valueOf(status.getActiveThreadCount()));
-        metrics.put(MetricNames.TOTAL_TASK_DURATION, 
Double.valueOf(calculateProcessingNanos(status)));
-        status.getOutputPortStatus();
-        return metrics;
-    }
-
-    //virtual machine metrics
-    public Map<String, Double> getJVMMetrics(JmxJvmMetrics 
virtualMachineMetrics) {
-        final Map<String, Double> metrics = new HashMap<>();
-        metrics.put(MetricNames.JVM_UPTIME, 
Double.valueOf(virtualMachineMetrics.uptime()));
-        metrics.put(MetricNames.JVM_HEAP_USED, 
Double.valueOf(virtualMachineMetrics.heapUsed(DataUnit.B)));
-        metrics.put(MetricNames.JVM_HEAP_USAGE, 
Double.valueOf(virtualMachineMetrics.heapUsage()));
-        metrics.put(MetricNames.JVM_NON_HEAP_USAGE, 
Double.valueOf(virtualMachineMetrics.nonHeapUsage()));
-        metrics.put(MetricNames.JVM_THREAD_COUNT, 
Double.valueOf(virtualMachineMetrics.threadCount()));
-        metrics.put(MetricNames.JVM_DAEMON_THREAD_COUNT, 
Double.valueOf(virtualMachineMetrics.daemonThreadCount()));
-        metrics.put(MetricNames.JVM_FILE_DESCRIPTOR_USAGE, 
Double.valueOf(virtualMachineMetrics.fileDescriptorUsage()));
-
-        for (Map.Entry<Thread.State, Double> entry : 
virtualMachineMetrics.threadStatePercentages().entrySet()) {
-            final int normalizedValue = (int) (100 * (entry.getValue() == null 
? 0 : entry.getValue()));
-            switch (entry.getKey()) {
-                case BLOCKED:
-                    metrics.put(MetricNames.JVM_THREAD_STATES_BLOCKED, 
Double.valueOf(normalizedValue));
-                    break;
-                case RUNNABLE:
-                    metrics.put(MetricNames.JVM_THREAD_STATES_RUNNABLE, 
Double.valueOf(normalizedValue));
-                    break;
-                case TERMINATED:
-                    metrics.put(MetricNames.JVM_THREAD_STATES_TERMINATED, 
Double.valueOf(normalizedValue));
-                    break;
-                case TIMED_WAITING:
-                    metrics.put(MetricNames.JVM_THREAD_STATES_TIMED_WAITING, 
Double.valueOf(normalizedValue));
-                    break;
-                default:
-                    break;
-            }
-        }
-
-        for (Map.Entry<String, JmxJvmMetrics.GarbageCollectorStats> entry : 
virtualMachineMetrics.garbageCollectors().entrySet()) {
-            final String gcName = entry.getKey().replace(" ", "");
-            final long runs = entry.getValue().getRuns();
-            final long timeMS = 
entry.getValue().getTime(TimeUnit.MILLISECONDS);
-            metrics.put(MetricNames.JVM_GC_RUNS + "." + gcName, 
Double.valueOf(runs));
-            metrics.put(MetricNames.JVM_GC_TIME + "." + gcName, 
Double.valueOf(timeMS));
-        }
-
-        return metrics;
-    }
-
-
-    // calculates the total processing time of all processors in nanos
-    protected long calculateProcessingNanos(final ProcessGroupStatus status) {
-        long nanos = 0L;
-
-        for (final ProcessorStatus procStats : status.getProcessorStatus()) {
-            nanos += procStats.getProcessingNanos();
-        }
-
-        for (final ProcessGroupStatus childGroupStatus : 
status.getProcessGroupStatus()) {
-            nanos += calculateProcessingNanos(childGroupStatus);
-        }
-
-        return nanos;
-    }
-
-
-}
diff --git 
a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/main/resources/META-INF/services/org.apache.nifi.reporting.ReportingTask
 
b/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/main/resources/META-INF/services/org.apache.nifi.reporting.ReportingTask
deleted file mode 100644
index 23be9d75c6..0000000000
--- 
a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/main/resources/META-INF/services/org.apache.nifi.reporting.ReportingTask
+++ /dev/null
@@ -1,15 +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.
-org.apache.nifi.reporting.datadog.DataDogReportingTask
\ No newline at end of file
diff --git 
a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/main/resources/docs/org.apache.nifi.reporting.datadog.DataDogReportingTask/additionalDetails.html
 
b/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/main/resources/docs/org.apache.nifi.reporting.datadog.DataDogReportingTask/additionalDetails.html
deleted file mode 100644
index 0672a88daa..0000000000
--- 
a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/main/resources/docs/org.apache.nifi.reporting.datadog.DataDogReportingTask/additionalDetails.html
+++ /dev/null
@@ -1,53 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<!--
-  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.
--->
-    <head>
-        <meta charset="utf-8" />
-        <title>DataDogReportingTask</title>
-        <link rel="stylesheet" href="../../../../../css/component-usage.css" 
type="text/css" />
-    </head>
-
-    <body>
-        <h2>DataDogReportingTask</h2>
-
-        <p>This ReportingTask sends the following metrics to DataDog:</p>
-        <ul>
-            <li>FlowFilesReceivedLast5Minutes</li>
-            <li>BytesReceivedLast5Minutes</li>
-            <li>FlowFilesSentLast5Minutes</li>
-            <li>BytesSentLast5Minutes</li>
-            <li>FlowFilesQueued</li>
-            <li>BytesQueued</li>
-            <li>BytesReadLast5Minutes</li>
-            <li>BytesWrittenLast5Minutes</li>
-            <li>ActiveThreads</li>
-            <li>TotalTaskDurationSeconds</li>
-            <li>jvm.uptime</li>
-            <li>jvm.heap_used</li>
-            <li>jvm.heap_usage</li>
-            <li>jvm.non_heap_usage</li>
-            <li>jvm.thread_states.runnable</li>
-            <li>jvm.thread_states.blocked</li>
-            <li>jvm.thread_states.timed_waiting</li>
-            <li>jvm.thread_states.terminated</li>
-            <li>jvm.thread_count</li>
-            <li>jvm.daemon_thread_count</li>
-            <li>jvm.file_descriptor_usage</li>
-            <li>jvm.gc.runs</li>
-            <li>jvm.gc.time</li>
-        </ul>
-    </body>
-</html>
diff --git 
a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/test/java/org/apache/nifi/reporting/datadog/TestDataDogReportingTask.java
 
b/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/test/java/org/apache/nifi/reporting/datadog/TestDataDogReportingTask.java
deleted file mode 100644
index d7c08b919c..0000000000
--- 
a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/test/java/org/apache/nifi/reporting/datadog/TestDataDogReportingTask.java
+++ /dev/null
@@ -1,200 +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 org.apache.nifi.reporting.datadog;
-
-import com.codahale.metrics.MetricRegistry;
-import org.apache.nifi.controller.ConfigurationContext;
-import org.apache.nifi.controller.status.ProcessGroupStatus;
-import org.apache.nifi.controller.status.ProcessorStatus;
-import org.apache.nifi.metrics.jvm.JmxJvmMetrics;
-import org.apache.nifi.reporting.EventAccess;
-import org.apache.nifi.reporting.InitializationException;
-import org.apache.nifi.reporting.ReportingContext;
-import org.apache.nifi.reporting.ReportingInitializationContext;
-import org.apache.nifi.reporting.datadog.metrics.MetricsService;
-import org.apache.nifi.util.MockComponentLog;
-import org.apache.nifi.util.MockPropertyValue;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Map;
-import java.util.UUID;
-import java.util.concurrent.ConcurrentHashMap;
-
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.any;
-import static org.mockito.Mockito.atLeast;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-public class TestDataDogReportingTask {
-
-    private ProcessGroupStatus status;
-    private ProcessorStatus procStatus;
-    private ConcurrentHashMap<String, Double> metricsMap;
-    private MetricRegistry metricRegistry;
-    private MetricsService metricsService;
-    private ReportingContext context;
-    private ReportingInitializationContext initContext;
-    private ConfigurationContext configurationContext;
-    private volatile JmxJvmMetrics virtualMachineMetrics;
-
-    @BeforeEach
-    public void setup() {
-        initProcessGroupStatus();
-        initProcessorStatuses();
-        initContexts();
-    }
-
-    private void initContexts() {
-        configurationContext = mock(ConfigurationContext.class);
-        context = mock(ReportingContext.class);
-        when(context.getProperty(DataDogReportingTask.ENVIRONMENT))
-                .thenReturn(new MockPropertyValue("dev", null));
-        when(context.getProperty(DataDogReportingTask.METRICS_PREFIX))
-                .thenReturn(new MockPropertyValue("nifi", null));
-        when(context.getProperty(DataDogReportingTask.API_KEY))
-                .thenReturn(new MockPropertyValue("agent", null));
-        when(context.getProperty(DataDogReportingTask.DATADOG_TRANSPORT))
-                .thenReturn(new MockPropertyValue("DataDog Agent", null));
-        EventAccess eventAccess = mock(EventAccess.class);
-        when(eventAccess.getControllerStatus()).thenReturn(status);
-        when(context.getEventAccess()).thenReturn(eventAccess);
-
-        initContext = mock(ReportingInitializationContext.class);
-        
when(initContext.getIdentifier()).thenReturn(UUID.randomUUID().toString());
-        when(initContext.getLogger()).thenReturn(new MockComponentLog("id", 
"TestDataDogReportingTask"));
-        metricsMap = new ConcurrentHashMap<>();
-        metricRegistry = mock(MetricRegistry.class);
-        virtualMachineMetrics = JmxJvmMetrics.getInstance();
-        metricsService = mock(MetricsService.class);
-    }
-
-    @Test
-    public void testOnTrigger() throws InitializationException {
-        DataDogReportingTask dataDogReportingTask = new 
TestableDataDogReportingTask();
-        dataDogReportingTask.initialize(initContext);
-        dataDogReportingTask.setup(configurationContext);
-        dataDogReportingTask.onTrigger(context);
-
-        verify(metricsService, atLeast(1)).getProcessorMetrics(any());
-        verify(metricsService, atLeast(1)).getJVMMetrics(any());
-    }
-
-    @Test
-    public void testUpdateMetricsProcessor() throws InitializationException {
-        MetricsService ms = new MetricsService();
-        Map<String, Double> processorMetrics = 
ms.getProcessorMetrics(procStatus);
-        Map<String, String> tagsMap = Collections.singletonMap("env", "test");
-        DataDogReportingTask dataDogReportingTask = new 
TestableDataDogReportingTask();
-        dataDogReportingTask.initialize(initContext);
-        dataDogReportingTask.setup(configurationContext);
-        dataDogReportingTask.updateMetrics(processorMetrics, tagsMap);
-
-        
verify(metricRegistry).register(eq("nifi.FlowFilesReceivedLast5Minutes"), 
any());
-        verify(metricRegistry).register(eq("nifi.ActiveThreads"), any());
-        verify(metricRegistry).register(eq("nifi.BytesWrittenLast5Minutes"), 
any());
-        verify(metricRegistry).register(eq("nifi.BytesReadLast5Minutes"), 
any());
-        verify(metricRegistry).register(eq("nifi.FlowFilesSentLast5Minutes"), 
any());
-    }
-
-    @Test
-    public void testUpdateMetricsJVM() throws InitializationException {
-        MetricsService ms = new MetricsService();
-        Map<String, Double> processorMetrics = 
ms.getJVMMetrics(virtualMachineMetrics);
-        Map<String, String> tagsMap = Collections.singletonMap("env", "test");
-
-        DataDogReportingTask dataDogReportingTask = new 
TestableDataDogReportingTask();
-        dataDogReportingTask.initialize(initContext);
-        dataDogReportingTask.setup(configurationContext);
-
-        dataDogReportingTask.updateMetrics(processorMetrics, tagsMap);
-        verify(metricRegistry).register(eq("nifi.jvm.heap_usage"), any());
-        verify(metricRegistry).register(eq("nifi.jvm.thread_count"), any());
-        
verify(metricRegistry).register(eq("nifi.jvm.thread_states.terminated"), any());
-        verify(metricRegistry).register(eq("nifi.jvm.heap_used"), any());
-        verify(metricRegistry).register(eq("nifi.jvm.thread_states.runnable"), 
any());
-        
verify(metricRegistry).register(eq("nifi.jvm.thread_states.timed_waiting"), 
any());
-        verify(metricRegistry).register(eq("nifi.jvm.uptime"), any());
-        verify(metricRegistry).register(eq("nifi.jvm.daemon_thread_count"), 
any());
-        verify(metricRegistry).register(eq("nifi.jvm.file_descriptor_usage"), 
any());
-        verify(metricRegistry).register(eq("nifi.jvm.thread_states.blocked"), 
any());
-    }
-
-    private void initProcessGroupStatus() {
-        status = new ProcessGroupStatus();
-        status.setId("1234");
-        status.setFlowFilesReceived(5);
-        status.setBytesReceived(10000);
-        status.setFlowFilesSent(10);
-        status.setBytesSent(20000);
-        status.setQueuedCount(100);
-        status.setQueuedContentSize(1024L);
-        status.setBytesRead(60000L);
-        status.setBytesWritten(80000L);
-        status.setActiveThreadCount(5);
-        status.setInputCount(2);
-        status.setOutputCount(4);
-    }
-
-    private void initProcessorStatuses() {
-        procStatus = new ProcessorStatus();
-        procStatus.setProcessingNanos(123456789);
-        procStatus.setInputCount(2);
-        procStatus.setOutputCount(4);
-        procStatus.setActiveThreadCount(6);
-        procStatus.setBytesSent(1256);
-        procStatus.setName("sampleProcessor");
-        Collection<ProcessorStatus> processorStatuses = new ArrayList<>();
-        processorStatuses.add(procStatus);
-        status.setProcessorStatus(processorStatuses);
-
-        ProcessGroupStatus groupStatus = new ProcessGroupStatus();
-        groupStatus.setProcessorStatus(processorStatuses);
-
-        Collection<ProcessGroupStatus> groupStatuses = new ArrayList<>();
-        groupStatuses.add(groupStatus);
-        status.setProcessGroupStatus(groupStatuses);
-    }
-
-    private class TestableDataDogReportingTask extends DataDogReportingTask {
-        @Override
-        protected MetricsService getMetricsService() {
-            return metricsService;
-        }
-
-        @Override
-        protected DDMetricRegistryBuilder getMetricRegistryBuilder() {
-            return new DDMetricRegistryBuilder();
-        }
-
-        @Override
-        protected MetricRegistry getMetricRegistry() {
-            return metricRegistry;
-        }
-
-        @Override
-        protected ConcurrentHashMap<String, Double> getMetricsMap() {
-            return metricsMap;
-        }
-
-    }
-}
diff --git 
a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/test/java/org/apache/nifi/reporting/datadog/TestMetricsService.java
 
b/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/test/java/org/apache/nifi/reporting/datadog/TestMetricsService.java
deleted file mode 100644
index 9f91d8f251..0000000000
--- 
a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/test/java/org/apache/nifi/reporting/datadog/TestMetricsService.java
+++ /dev/null
@@ -1,111 +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 org.apache.nifi.reporting.datadog;
-
-import org.apache.nifi.controller.status.ProcessGroupStatus;
-import org.apache.nifi.controller.status.ProcessorStatus;
-import org.apache.nifi.metrics.jvm.JmxJvmMetrics;
-import org.apache.nifi.reporting.datadog.metrics.MetricNames;
-import org.apache.nifi.reporting.datadog.metrics.MetricsService;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-import static org.junit.jupiter.api.Assertions.assertTrue;
-
-public class TestMetricsService {
-
-    private ProcessGroupStatus status;
-    private MetricsService metricsService;
-
-    @BeforeEach
-    public void init() {
-        status = new ProcessGroupStatus();
-        metricsService = new MetricsService();
-        status.setId("1234");
-        status.setFlowFilesReceived(5);
-        status.setBytesReceived(10000);
-        status.setFlowFilesSent(10);
-        status.setBytesSent(20000);
-        status.setQueuedCount(100);
-        status.setQueuedContentSize(1024L);
-        status.setBytesRead(60000L);
-        status.setBytesWritten(80000L);
-        status.setActiveThreadCount(5);
-    }
-
-    //test group status metric retrieving
-    @Test
-    public void testGetProcessGroupStatusMetrics() {
-        ProcessorStatus procStatus = new ProcessorStatus();
-        List<ProcessorStatus> processorStatuses = new ArrayList<>();
-        processorStatuses.add(procStatus);
-        status.setProcessorStatus(processorStatuses);
-
-        final Map<String, Double> metrics = 
metricsService.getDataFlowMetrics(status);
-
-        assertTrue(metrics.containsKey(MetricNames.FLOW_FILES_RECEIVED));
-        assertTrue(metrics.containsKey(MetricNames.BYTES_RECEIVED));
-        assertTrue(metrics.containsKey(MetricNames.FLOW_FILES_SENT));
-        assertTrue(metrics.containsKey(MetricNames.BYTES_SENT));
-        assertTrue(metrics.containsKey(MetricNames.FLOW_FILES_QUEUED));
-        assertTrue(metrics.containsKey(MetricNames.BYTES_QUEUED));
-        assertTrue(metrics.containsKey(MetricNames.BYTES_READ));
-        assertTrue(metrics.containsKey(MetricNames.BYTES_WRITTEN));
-        assertTrue(metrics.containsKey(MetricNames.ACTIVE_THREADS));
-    }
-
-    //test processor status metric retrieving
-    @Test
-    public void testGetProcessorGroupStatusMetrics() {
-        ProcessorStatus procStatus = new ProcessorStatus();
-        List<ProcessorStatus> processorStatuses = new ArrayList<>();
-        processorStatuses.add(procStatus);
-        status.setProcessorStatus(processorStatuses);
-
-        final Map<String, Double> metrics = 
metricsService.getProcessorMetrics(procStatus);
-
-        assertTrue(metrics.containsKey(MetricNames.BYTES_READ));
-        assertTrue(metrics.containsKey(MetricNames.BYTES_WRITTEN));
-        assertTrue(metrics.containsKey(MetricNames.FLOW_FILES_RECEIVED));
-        assertTrue(metrics.containsKey(MetricNames.FLOW_FILES_SENT));
-        assertTrue(metrics.containsKey(MetricNames.ACTIVE_THREADS));
-    }
-
-    //test JVM status metric retrieving
-    @Test
-    public void testGetVirtualMachineMetrics() {
-        final JmxJvmMetrics virtualMachineMetrics = 
JmxJvmMetrics.getInstance();
-
-        final Map<String, Double> metrics = 
metricsService.getJVMMetrics(virtualMachineMetrics);
-        assertTrue(metrics.containsKey(MetricNames.JVM_UPTIME));
-        assertTrue(metrics.containsKey(MetricNames.JVM_HEAP_USED));
-        assertTrue(metrics.containsKey(MetricNames.JVM_HEAP_USAGE));
-        assertTrue(metrics.containsKey(MetricNames.JVM_NON_HEAP_USAGE));
-        
assertTrue(metrics.containsKey(MetricNames.JVM_THREAD_STATES_RUNNABLE));
-        assertTrue(metrics.containsKey(MetricNames.JVM_THREAD_STATES_BLOCKED));
-        
assertTrue(metrics.containsKey(MetricNames.JVM_THREAD_STATES_TIMED_WAITING));
-        
assertTrue(metrics.containsKey(MetricNames.JVM_THREAD_STATES_TERMINATED));
-        assertTrue(metrics.containsKey(MetricNames.JVM_THREAD_COUNT));
-        assertTrue(metrics.containsKey(MetricNames.JVM_DAEMON_THREAD_COUNT));
-        assertTrue(metrics.containsKey(MetricNames.JVM_FILE_DESCRIPTOR_USAGE));
-    }
-
-}
\ No newline at end of file
diff --git a/nifi-extension-bundles/nifi-datadog-bundle/pom.xml 
b/nifi-extension-bundles/nifi-datadog-bundle/pom.xml
deleted file mode 100644
index 6350f44e77..0000000000
--- a/nifi-extension-bundles/nifi-datadog-bundle/pom.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0"?>
-<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 
https://maven.apache.org/xsd/maven-4.0.0.xsd";>
-    <!--
-  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.
--->
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>org.apache.nifi</groupId>
-        <artifactId>nifi-standard-shared-bom</artifactId>
-        <version>2.0.0-SNAPSHOT</version>
-        
<relativePath>../nifi-standard-shared-bundle/nifi-standard-shared-bom</relativePath>
-    </parent>
-    <artifactId>nifi-datadog-bundle</artifactId>
-    <packaging>pom</packaging>
-    <modules>
-        <module>nifi-datadog-reporting-task</module>
-        <module>nifi-datadog-nar</module>
-    </modules>
-</project>
diff --git a/nifi-extension-bundles/pom.xml b/nifi-extension-bundles/pom.xml
index 73b4291d24..11d0ea8ddf 100755
--- a/nifi-extension-bundles/pom.xml
+++ b/nifi-extension-bundles/pom.xml
@@ -62,7 +62,6 @@
         <module>nifi-slack-bundle</module>
         <module>nifi-smb-bundle</module>
         <module>nifi-snmp-bundle</module>
-        <module>nifi-datadog-bundle</module>
         <module>nifi-windows-event-log-bundle</module>
         <module>nifi-graph-bundle</module>
         <module>nifi-email-bundle</module>


Reply via email to