You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by tk...@apache.org on 2015/10/18 19:25:27 UTC

nifi git commit: NIFI-747 Added some comments about servlet requirements and ensuring that the behavior matches original

Repository: nifi
Updated Branches:
  refs/heads/NIFI-747 23b7ffb19 -> 645d3cc2f


NIFI-747 Added some comments about servlet requirements and ensuring that the behavior matches original


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

Branch: refs/heads/NIFI-747
Commit: 645d3cc2f19d96dc8efff6208be6eb1c0fdd0e3e
Parents: 23b7ffb
Author: Tony Kurc <tr...@gmail.com>
Authored: Sun Oct 18 13:18:43 2015 -0400
Committer: Tony Kurc <tr...@gmail.com>
Committed: Sun Oct 18 13:18:43 2015 -0400

----------------------------------------------------------------------
 .../apache/nifi/processors/standard/ListenHTTP.java   | 14 +++++++++++---
 .../standard/servlets/ListenHTTPServlet.java          |  3 ++-
 2 files changed, 13 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/nifi/blob/645d3cc2/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ListenHTTP.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ListenHTTP.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ListenHTTP.java
index 1aee96f..f76756b 100644
--- a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ListenHTTP.java
+++ b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ListenHTTP.java
@@ -78,9 +78,9 @@ public class ListenHTTP extends AbstractSessionFactoryProcessor {
             .name("URI")
             .description("URI for incoming connections")
             .required(true)
-            .defaultValue("/contentListener")
+            .defaultValue("contentListener")
             .addValidator(StandardValidators.URI_VALIDATOR)
-            .addValidator(StandardValidators.createRegexMatchingValidator(Pattern.compile("/.*")))
+            .addValidator(StandardValidators.createRegexMatchingValidator(Pattern.compile("(^[^/]+.*[^/]+$|^[^/]+$|^$)"))) // no start with / or end with /
             .build();
     public static final PropertyDescriptor PORT = new PropertyDescriptor.Builder()
             .name("Listening Port")
@@ -239,7 +239,14 @@ public class ListenHTTP extends AbstractSessionFactoryProcessor {
         final ServletContextHandler contextHandler = new ServletContextHandler(server, "/", true, (keystorePath != null));
         for (final Class<? extends Servlet> cls : getServerClasses()) {
             final Path path = cls.getAnnotation(Path.class);
-            contextHandler.addServlet(cls, uri + path.value());
+            // Note: servlets must have a path annotation - this will NPE otherwise
+            if(uri.isEmpty() && !path.value().isEmpty()){
+                // Note: this is to handle the condition of an empty uri, otherwise pathSpec would start with //
+                contextHandler.addServlet(cls, path.value());
+            }
+            else{
+                contextHandler.addServlet(cls, "/" + uri + path.value());
+            }
         }
 
         contextHandler.setAttribute(CONTEXT_ATTRIBUTE_PROCESSOR, this);
@@ -265,6 +272,7 @@ public class ListenHTTP extends AbstractSessionFactoryProcessor {
 
     protected Set<Class<? extends Servlet>> getServerClasses() {
         final Set<Class<? extends Servlet>> s = new HashSet<>();
+        // NOTE: Servlets added below MUST have a Path annotation
         s.add(ListenHTTPServlet.class);
         s.add(ContentAcknowledgmentServlet.class);
         return s;

http://git-wip-us.apache.org/repos/asf/nifi/blob/645d3cc2/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/servlets/ListenHTTPServlet.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/servlets/ListenHTTPServlet.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/servlets/ListenHTTPServlet.java
index 6d09913..6da32d5 100644
--- a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/servlets/ListenHTTPServlet.java
+++ b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/servlets/ListenHTTPServlet.java
@@ -61,7 +61,8 @@ import org.apache.nifi.util.FlowFileUnpackagerV3;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang3.StringUtils;
 
-@Path("/*")
+
+@Path("")
 public class ListenHTTPServlet extends HttpServlet {
 
     private static final long serialVersionUID = 5329940480987723163L;