NIFI-251: Added CapabilityDescription and Tags annotations to reporting tasks 
and controller services


Project: http://git-wip-us.apache.org/repos/asf/incubator-nifi/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-nifi/commit/5161b234
Tree: http://git-wip-us.apache.org/repos/asf/incubator-nifi/tree/5161b234
Diff: http://git-wip-us.apache.org/repos/asf/incubator-nifi/diff/5161b234

Branch: refs/heads/annotations
Commit: 5161b234a51be5c8694c90b4fa9c8e2991de95f3
Parents: 716e03b
Author: Mark Payne <[email protected]>
Authored: Thu Jan 22 11:59:53 2015 -0500
Committer: Mark Payne <[email protected]>
Committed: Thu Jan 22 11:59:53 2015 -0500

----------------------------------------------------------------------
 .../nifi/controller/ControllerStatusReportingTask.java      | 9 ++++++++-
 .../java/org/apache/nifi/controller/MonitorDiskUsage.java   | 7 ++++++-
 .../main/java/org/apache/nifi/controller/MonitorMemory.java | 8 +++++++-
 .../nifi/reporting/ganglia/StandardGangliaReporter.java     | 7 +++++++
 .../distributed/cache/client/DistributedMapCacheClient.java | 5 +++++
 .../distributed/cache/client/DistributedSetCacheClient.java | 5 +++++
 .../distributed/cache/server/DistributedSetCacheServer.java | 6 +++++-
 .../cache/server/map/DistributedMapCacheServer.java         | 5 +++++
 .../java/org/apache/nifi/ssl/StandardSSLContextService.java | 5 +++++
 .../main/java/org/apache/nifi/ssl/SSLContextService.java    | 5 +++++
 10 files changed, 58 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/5161b234/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/ControllerStatusReportingTask.java
----------------------------------------------------------------------
diff --git 
a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/ControllerStatusReportingTask.java
 
b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/ControllerStatusReportingTask.java
index d8fe696..0d0bd3d 100644
--- 
a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/ControllerStatusReportingTask.java
+++ 
b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/ControllerStatusReportingTask.java
@@ -24,6 +24,8 @@ import java.util.List;
 import java.util.Map;
 import java.util.concurrent.TimeUnit;
 
+import org.apache.nifi.annotation.documentation.CapabilityDescription;
+import org.apache.nifi.annotation.documentation.Tags;
 import org.apache.nifi.components.PropertyDescriptor;
 import org.apache.nifi.controller.annotation.OnConfigured;
 import org.apache.nifi.controller.status.ConnectionStatus;
@@ -32,10 +34,15 @@ import org.apache.nifi.controller.status.ProcessorStatus;
 import org.apache.nifi.reporting.AbstractReportingTask;
 import org.apache.nifi.reporting.ReportingContext;
 import org.apache.nifi.util.FormatUtils;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+@Tags({"stats", "log"})
+@CapabilityDescription("Logs the 5-minute stats that are shown in the NiFi 
Summary Page for Processors and Connections, as"
+        + " well optionally logging the deltas between the previous iteration 
and the current iteration. Processors' stats are"
+        + " logged using the 
org.apache.nifi.controller.ControllerStatusReportingTask.Processors logger, 
while Connections' stats are"
+        + " logged using the 
org.apache.nifi.controller.ControllerStatusReportingTask.Connections logger. 
These can be configured"
+        + " in the NiFi logging configuration to log to different files, if 
desired.")
 public class ControllerStatusReportingTask extends AbstractReportingTask {
 
     public static final PropertyDescriptor SHOW_DELTAS = new 
PropertyDescriptor.Builder()

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/5161b234/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/MonitorDiskUsage.java
----------------------------------------------------------------------
diff --git 
a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/MonitorDiskUsage.java
 
b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/MonitorDiskUsage.java
index 7de8f82..f2644b5 100644
--- 
a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/MonitorDiskUsage.java
+++ 
b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/MonitorDiskUsage.java
@@ -24,6 +24,8 @@ import java.util.Map;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
+import org.apache.nifi.annotation.documentation.CapabilityDescription;
+import org.apache.nifi.annotation.documentation.Tags;
 import org.apache.nifi.components.PropertyDescriptor;
 import org.apache.nifi.processor.util.StandardValidators;
 import org.apache.nifi.reporting.AbstractReportingTask;
@@ -32,10 +34,13 @@ import org.apache.nifi.reporting.ReportingContext;
 import org.apache.nifi.reporting.Severity;
 import org.apache.nifi.util.FormatUtils;
 import org.apache.nifi.util.NiFiProperties;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+@Tags({"disk", "storage", "warning", "monitoring", "repo"})
+@CapabilityDescription("Checks the amount of storage space available for the 
Content Repository and FlowFile Repository"
+        + " and warns (via a log message and a System-Level Bulletin) if the 
partition on which either repository exceeds"
+        + " some configurable threshold of storage space")
 public class MonitorDiskUsage extends AbstractReportingTask {
 
     private static final Logger logger = 
LoggerFactory.getLogger(MonitorDiskUsage.class);

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/5161b234/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/MonitorMemory.java
----------------------------------------------------------------------
diff --git 
a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/MonitorMemory.java
 
b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/MonitorMemory.java
index 44ed340..70ebbf3 100644
--- 
a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/MonitorMemory.java
+++ 
b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/MonitorMemory.java
@@ -16,7 +16,10 @@
  */
 package org.apache.nifi.controller;
 
+import org.apache.nifi.annotation.documentation.CapabilityDescription;
+import org.apache.nifi.annotation.documentation.Tags;
 import org.apache.nifi.controller.ConfigurationContext;
+
 import java.lang.management.GarbageCollectorMXBean;
 import java.lang.management.ManagementFactory;
 import java.lang.management.MemoryPoolMXBean;
@@ -40,7 +43,6 @@ import org.apache.nifi.reporting.ReportingContext;
 import org.apache.nifi.reporting.ReportingInitializationContext;
 import org.apache.nifi.reporting.Severity;
 import org.apache.nifi.util.FormatUtils;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -86,6 +88,10 @@ import org.slf4j.LoggerFactory;
  * </li>
  * </ul>
  */
+@Tags({"monitor", "memory", "heap", "jvm", "gc", "garbage collection", 
"warning"})
+@CapabilityDescription("Checks the amount of Java Heap available in the JVM 
for a particular JVM Memory Pool. If the"
+        + " amount of space used exceeds some configurable threshold, will 
warn (via a log message and System-Level Bulletin)"
+        + " that the memory pool is exceeding this threshold.")
 public class MonitorMemory extends AbstractReportingTask {
 
     public static final PropertyDescriptor MEMORY_POOL_PROPERTY = new 
PropertyDescriptor.Builder()

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/5161b234/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/reporting/ganglia/StandardGangliaReporter.java
----------------------------------------------------------------------
diff --git 
a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/reporting/ganglia/StandardGangliaReporter.java
 
b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/reporting/ganglia/StandardGangliaReporter.java
index 2b62e60..048abd8 100644
--- 
a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/reporting/ganglia/StandardGangliaReporter.java
+++ 
b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/reporting/ganglia/StandardGangliaReporter.java
@@ -24,6 +24,8 @@ import java.util.concurrent.atomic.AtomicReference;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.apache.nifi.annotation.documentation.CapabilityDescription;
+import org.apache.nifi.annotation.documentation.Tags;
 import org.apache.nifi.components.PropertyDescriptor;
 import org.apache.nifi.controller.ConfigurationContext;
 import org.apache.nifi.controller.annotation.OnConfigured;
@@ -44,6 +46,11 @@ import com.yammer.metrics.reporting.GangliaReporter;
  * to the Ganglia server and optionally allows a "port" property (default
  * otherwise is 8649)
  */
+@Tags({"ganglia", "stats"})
+@CapabilityDescription("Reports metrics to Ganglia so that Ganglia can be used 
for external monitoring of the application. Metrics"
+        + " reported include JVM Metrics (optional); the following 5-minute 
NiFi statistics: FlowFiles Received, Bytes Received,"
+        + " FlowFiles Sent, Bytes Sent, Bytes Read, Bytes Written, Total Task 
Duration; and the current values for"
+        + " FlowFiles Queued, Bytes Queued, and number of Active Threads.")
 public class StandardGangliaReporter extends AbstractReportingTask {
 
     public static final PropertyDescriptor HOSTNAME = new 
PropertyDescriptor.Builder()

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/5161b234/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-client-service-api/src/main/java/org/apache/nifi/distributed/cache/client/DistributedMapCacheClient.java
----------------------------------------------------------------------
diff --git 
a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-client-service-api/src/main/java/org/apache/nifi/distributed/cache/client/DistributedMapCacheClient.java
 
b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-client-service-api/src/main/java/org/apache/nifi/distributed/cache/client/DistributedMapCacheClient.java
index 5bead8c..8283137 100644
--- 
a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-client-service-api/src/main/java/org/apache/nifi/distributed/cache/client/DistributedMapCacheClient.java
+++ 
b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-client-service-api/src/main/java/org/apache/nifi/distributed/cache/client/DistributedMapCacheClient.java
@@ -18,6 +18,8 @@ package org.apache.nifi.distributed.cache.client;
 
 import java.io.IOException;
 
+import org.apache.nifi.annotation.documentation.CapabilityDescription;
+import org.apache.nifi.annotation.documentation.Tags;
 import org.apache.nifi.controller.ControllerService;
 
 /**
@@ -25,6 +27,9 @@ import org.apache.nifi.controller.ControllerService;
  * Distributed Cache that functions similarly to a {@link java.util.Map Map}.
  *
  */
+@Tags({"distributed", "client", "cluster", "map", "cache"})
+@CapabilityDescription("Provides the ability to communicate with a 
DistributedMapCacheServer. This allows "
+        + "multiple nodes to coordinate state with a single remote entity.")
 public interface DistributedMapCacheClient extends ControllerService {
 
     /**

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/5161b234/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-client-service-api/src/main/java/org/apache/nifi/distributed/cache/client/DistributedSetCacheClient.java
----------------------------------------------------------------------
diff --git 
a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-client-service-api/src/main/java/org/apache/nifi/distributed/cache/client/DistributedSetCacheClient.java
 
b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-client-service-api/src/main/java/org/apache/nifi/distributed/cache/client/DistributedSetCacheClient.java
index 12aae3e..534285c 100644
--- 
a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-client-service-api/src/main/java/org/apache/nifi/distributed/cache/client/DistributedSetCacheClient.java
+++ 
b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-client-service-api/src/main/java/org/apache/nifi/distributed/cache/client/DistributedSetCacheClient.java
@@ -18,12 +18,17 @@ package org.apache.nifi.distributed.cache.client;
 
 import java.io.IOException;
 
+import org.apache.nifi.annotation.documentation.CapabilityDescription;
+import org.apache.nifi.annotation.documentation.Tags;
 import org.apache.nifi.controller.ControllerService;
 
 /**
  * This interface defines an API that can be used for interacting with a
  * Distributed Cache that functions similarly to a {@link java.util.Set Set}.
  */
+@Tags({"distributed", "client", "cluster", "set", "cache"})
+@CapabilityDescription("Provides the ability to communicate with a 
DistributedSetCacheServer. This allows "
+        + "multiple nodes to coordinate state with a single remote entity.")
 public interface DistributedSetCacheClient extends ControllerService {
 
     /**

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/5161b234/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/DistributedSetCacheServer.java
----------------------------------------------------------------------
diff --git 
a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/DistributedSetCacheServer.java
 
b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/DistributedSetCacheServer.java
index 426573f..70e86c4 100644
--- 
a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/DistributedSetCacheServer.java
+++ 
b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/DistributedSetCacheServer.java
@@ -20,10 +20,14 @@ import java.io.File;
 
 import javax.net.ssl.SSLContext;
 
+import org.apache.nifi.annotation.documentation.CapabilityDescription;
+import org.apache.nifi.annotation.documentation.Tags;
 import org.apache.nifi.controller.ConfigurationContext;
 import org.apache.nifi.ssl.SSLContextService;
 import org.apache.nifi.ssl.SSLContextService.ClientAuth;
-
+@Tags({"distributed", "set", "distinct", "cache", "server"})
+@CapabilityDescription("Provides a set (collection of unique values) cache 
that can be accessed over a socket. "
+        + "Interaction with this service is typically accomplished via a 
DistributedSetCacheClient service.")
 public class DistributedSetCacheServer extends DistributedCacheServer {
 
     @Override

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/5161b234/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/map/DistributedMapCacheServer.java
----------------------------------------------------------------------
diff --git 
a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/map/DistributedMapCacheServer.java
 
b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/map/DistributedMapCacheServer.java
index 920529d..6c62849 100644
--- 
a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/map/DistributedMapCacheServer.java
+++ 
b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/map/DistributedMapCacheServer.java
@@ -20,6 +20,8 @@ import java.io.File;
 
 import javax.net.ssl.SSLContext;
 
+import org.apache.nifi.annotation.documentation.CapabilityDescription;
+import org.apache.nifi.annotation.documentation.Tags;
 import org.apache.nifi.controller.ConfigurationContext;
 import org.apache.nifi.distributed.cache.server.CacheServer;
 import org.apache.nifi.distributed.cache.server.DistributedCacheServer;
@@ -27,6 +29,9 @@ import 
org.apache.nifi.distributed.cache.server.EvictionPolicy;
 import org.apache.nifi.ssl.SSLContextService;
 import org.apache.nifi.ssl.SSLContextService.ClientAuth;
 
+@Tags({"distributed", "cluster", "map", "cache", "server", "key/value"})
+@CapabilityDescription("Provides a map (key/value) cache that can be accessed 
over a socket. Interaction with this service"
+        + " is typically accomplished via a DistributedMapCacheClient 
service.")
 public class DistributedMapCacheServer extends DistributedCacheServer {
 
     @Override

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/5161b234/nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/src/main/java/org/apache/nifi/ssl/StandardSSLContextService.java
----------------------------------------------------------------------
diff --git 
a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/src/main/java/org/apache/nifi/ssl/StandardSSLContextService.java
 
b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/src/main/java/org/apache/nifi/ssl/StandardSSLContextService.java
index 68f83d4..ae2e19c 100644
--- 
a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/src/main/java/org/apache/nifi/ssl/StandardSSLContextService.java
+++ 
b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/src/main/java/org/apache/nifi/ssl/StandardSSLContextService.java
@@ -26,6 +26,8 @@ import java.util.Map;
 
 import javax.net.ssl.SSLContext;
 
+import org.apache.nifi.annotation.documentation.CapabilityDescription;
+import org.apache.nifi.annotation.documentation.Tags;
 import org.apache.nifi.annotation.lifecycle.OnEnabled;
 import org.apache.nifi.components.PropertyDescriptor;
 import org.apache.nifi.components.ValidationContext;
@@ -40,6 +42,9 @@ import org.apache.nifi.security.util.CertificateUtils;
 import org.apache.nifi.security.util.KeystoreType;
 import org.apache.nifi.security.util.SslContextFactory;
 
+@Tags({"ssl", "secure", "certificate", "keystore", "truststore", "jks", "p12", 
"pkcs12", "pkcs"})
+@CapabilityDescription("Standard implementation of the SSLContextService. 
Provides the ability to configure "
+        + "keystore and/or truststore properties once and reuse that 
configuration throughout the application")
 public class StandardSSLContextService extends AbstractControllerService 
implements SSLContextService {
 
     public static final String STORE_TYPE_JKS = "JKS";

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/5161b234/nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-service-api/src/main/java/org/apache/nifi/ssl/SSLContextService.java
----------------------------------------------------------------------
diff --git 
a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-service-api/src/main/java/org/apache/nifi/ssl/SSLContextService.java
 
b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-service-api/src/main/java/org/apache/nifi/ssl/SSLContextService.java
index 7c71a8e..b2e3b76 100644
--- 
a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-service-api/src/main/java/org/apache/nifi/ssl/SSLContextService.java
+++ 
b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-service-api/src/main/java/org/apache/nifi/ssl/SSLContextService.java
@@ -18,6 +18,8 @@ package org.apache.nifi.ssl;
 
 import javax.net.ssl.SSLContext;
 
+import org.apache.nifi.annotation.documentation.CapabilityDescription;
+import org.apache.nifi.annotation.documentation.Tags;
 import org.apache.nifi.controller.ControllerService;
 import org.apache.nifi.processor.exception.ProcessException;
 
@@ -25,6 +27,9 @@ import org.apache.nifi.processor.exception.ProcessException;
  * Definition for SSLContextService.
  *
  */
+@Tags({"ssl", "secure", "certificate", "keystore", "truststore", "jks", "p12", 
"pkcs12", "pkcs"})
+@CapabilityDescription("Provides the ability to configure keystore and/or 
truststore properties once and reuse "
+        + "that configuration throughout the application")
 public interface SSLContextService extends ControllerService {
 
     public static enum ClientAuth {

Reply via email to