You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by or...@apache.org on 2013/10/05 02:27:29 UTC

svn commit: r1529361 - /qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/

Author: orudyy
Date: Sat Oct  5 00:27:28 2013
New Revision: 1529361

URL: http://svn.apache.org/r1529361
Log:
QPID-5138: Remove the duplicate code processing servlet path info

Modified:
    qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/AbstractServlet.java
    qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageContentServlet.java
    qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageServlet.java
    qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java
    qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/UserPreferencesServlet.java

Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/AbstractServlet.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/AbstractServlet.java?rev=1529361&r1=1529360&r2=1529361&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/AbstractServlet.java (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/AbstractServlet.java Sat Oct  5 00:27:28 2013
@@ -275,4 +275,14 @@ public abstract class AbstractServlet ex
         mapper.configure(SerializationConfig.Feature.INDENT_OUTPUT, true);
         mapper.writeValue(writer, object);
     }
+
+    protected String[] getPathInfoElements(HttpServletRequest request)
+    {
+        String pathInfo = request.getPathInfo();
+        if (pathInfo != null && pathInfo.length() > 0)
+        {
+            return pathInfo.substring(1).split("/");
+        }
+        return null;
+    }
 }

Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageContentServlet.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageContentServlet.java?rev=1529361&r1=1529360&r2=1529361&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageContentServlet.java (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageContentServlet.java Sat Oct  5 00:27:28 2013
@@ -44,8 +44,8 @@ public class MessageContentServlet exten
     @Override
     protected void doGetWithSubjectAndActor(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
     {
-
-        if(request.getPathInfo() != null && request.getPathInfo().length()>0 && request.getPathInfo().substring(1).split("/").length > 2)
+        String[] pathInfoElements = getPathInfoElements(request);
+        if(pathInfoElements != null && pathInfoElements.length > 2)
         {
             getMessageContent(request, response);
         }
@@ -55,7 +55,7 @@ public class MessageContentServlet exten
     private void getMessageContent(HttpServletRequest request, HttpServletResponse response) throws IOException
     {
         Queue queue = getQueueFromRequest(request);
-        String path[] = request.getPathInfo().substring(1).split("/");
+        String path[] = getPathInfoElements(request);
         MessageFinder finder = new MessageFinder(Long.parseLong(path[2]));
         queue.visit(finder);
         if(finder.isFound())
@@ -70,15 +70,15 @@ public class MessageContentServlet exten
 
     private Queue getQueueFromRequest(HttpServletRequest request)
     {
-        List<String> names = new ArrayList<String>();
         // TODO - validation that there is a vhost and queue and only those in the path
-        if(request.getPathInfo() != null && request.getPathInfo().length()>0)
+
+        String[] pathInfoElements = getPathInfoElements(request);
+        if(pathInfoElements == null || pathInfoElements.length < 2)
         {
-            String path = request.getPathInfo().substring(1);
-            names.addAll(Arrays.asList(path.split("/")));
+            throw new IllegalArgumentException("Invalid path is specified");
         }
-        String vhostName = names.get(0);
-        String queueName = names.get(1);
+        String vhostName = pathInfoElements[0];
+        String queueName = pathInfoElements[1];
 
         VirtualHost vhost = null;
 

Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageServlet.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageServlet.java?rev=1529361&r1=1529360&r2=1529361&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageServlet.java (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageServlet.java Sat Oct  5 00:27:28 2013
@@ -56,8 +56,8 @@ public class MessageServlet extends Abst
     @Override
     protected void doGetWithSubjectAndActor(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
     {
-
-        if(request.getPathInfo() != null && request.getPathInfo().length()>0 && request.getPathInfo().substring(1).split("/").length > 2)
+        String[] pathInfoElements = getPathInfoElements(request);
+        if(pathInfoElements != null && pathInfoElements.length > 2)
         {
             getMessageContent(request, response);
         }
@@ -71,7 +71,7 @@ public class MessageServlet extends Abst
     private void getMessageContent(HttpServletRequest request, HttpServletResponse response) throws IOException
     {
         Queue queue = getQueueFromRequest(request);
-        String path[] = request.getPathInfo().substring(1).split("/");
+        String path[] = getPathInfoElements(request);
         MessageFinder messageFinder = new MessageFinder(Long.parseLong(path[2]));
         queue.visit(messageFinder);
 
@@ -124,15 +124,15 @@ public class MessageServlet extends Abst
 
     private Queue getQueueFromRequest(HttpServletRequest request)
     {
-        List<String> names = new ArrayList<String>();
         // TODO - validation that there is a vhost and queue and only those in the path
-        if(request.getPathInfo() != null && request.getPathInfo().length()>0)
+
+        String[] pathInfoElements = getPathInfoElements(request);
+        if(pathInfoElements == null || pathInfoElements.length < 2)
         {
-            String path = request.getPathInfo().substring(1);
-            names.addAll(Arrays.asList(path.split("/")));
+            throw new IllegalArgumentException("Invalid path is specified");
         }
-        String vhostName = names.get(0);
-        String queueName = names.get(1);
+        String vhostName = pathInfoElements[0];
+        String queueName = pathInfoElements[1];
 
         VirtualHost vhost = null;
 

Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java?rev=1529361&r1=1529360&r2=1529361&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java Sat Oct  5 00:27:28 2013
@@ -115,16 +115,15 @@ public class RestServlet extends Abstrac
 
     protected Collection<ConfiguredObject> getObjects(HttpServletRequest request)
     {
+        String[] pathInfoElements = getPathInfoElements(request);
         List<String> names = new ArrayList<String>();
-        if(request.getPathInfo() != null && request.getPathInfo().length()>0)
+        if(pathInfoElements != null)
         {
-            String path = request.getPathInfo().substring(1);
-            names.addAll(Arrays.asList(path.split("/")));
-
-            if(names.size() > _hierarchy.length)
+            if(pathInfoElements.length > _hierarchy.length)
             {
                 throw new IllegalArgumentException("Too many entries in path. Expected " + _hierarchy.length + "; path: " + names);
             }
+            names.addAll(Arrays.asList(pathInfoElements));
         }
 
         Collection<ConfiguredObject> parents = Collections.singleton((ConfiguredObject) getBroker());
@@ -329,16 +328,15 @@ public class RestServlet extends Abstrac
 
 
         List<String> names = new ArrayList<String>();
-        if(request.getPathInfo() != null && request.getPathInfo().length()>0)
+        String[] pathInfoElements = getPathInfoElements(request);
+        if(pathInfoElements != null )
         {
-            String path = request.getPathInfo().substring(1);
-            names.addAll(Arrays.asList(path.split("/")));
-
-            if(names.size() != _hierarchy.length)
+            if(pathInfoElements.length != _hierarchy.length)
             {
                 throw new IllegalArgumentException("Path to object to create must be fully specified. "
                        + "Found " + names + " of size " + names.size() + " expecting " + _hierarchy.length);
             }
+            names.addAll(Arrays.asList(pathInfoElements));
         }
 
         if (names.isEmpty())

Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/UserPreferencesServlet.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/UserPreferencesServlet.java?rev=1529361&r1=1529360&r2=1529361&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/UserPreferencesServlet.java (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/UserPreferencesServlet.java Sat Oct  5 00:27:28 2013
@@ -50,11 +50,7 @@ public class UserPreferencesServlet exte
     protected void doGetWithSubjectAndActor(HttpServletRequest request, HttpServletResponse response) throws IOException,
             ServletException
     {
-        String[] pathElements = null;
-        if (request.getPathInfo() != null && request.getPathInfo().length() > 0)
-        {
-            pathElements = request.getPathInfo().substring(1).split("/");
-        }
+        String[] pathElements = getPathInfoElements(request);
         if (pathElements != null && pathElements.length > 1)
         {
             getUserPreferences(pathElements[0], pathElements[1], response);



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org