diff options
| author | Alex Rudyy <orudyy@apache.org> | 2013-10-05 00:27:28 +0000 |
|---|---|---|
| committer | Alex Rudyy <orudyy@apache.org> | 2013-10-05 00:27:28 +0000 |
| commit | 4a8cda9d14fbe042cb8d4ca487c6972fd1173e19 (patch) | |
| tree | 31d016b7cc1bc5887e45e96841cf3c42815930af /qpid/java/broker-plugins | |
| parent | e41d1f62a9ada60d9171d142ea5cb079ed46531c (diff) | |
| download | qpid-python-4a8cda9d14fbe042cb8d4ca487c6972fd1173e19.tar.gz | |
QPID-5138: Remove the duplicate code processing servlet path info
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1529361 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/broker-plugins')
5 files changed, 37 insertions, 33 deletions
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/AbstractServlet.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/AbstractServlet.java index c0f4b55f64..a08d6496bf 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/AbstractServlet.java +++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/AbstractServlet.java @@ -275,4 +275,14 @@ public abstract class AbstractServlet extends HttpServlet 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; + } } diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageContentServlet.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageContentServlet.java index d61c48bb2c..4d85d52997 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageContentServlet.java +++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageContentServlet.java @@ -44,8 +44,8 @@ public class MessageContentServlet extends AbstractServlet @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 extends AbstractServlet 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 extends AbstractServlet 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; diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageServlet.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageServlet.java index 83208516c7..ac0d369402 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageServlet.java +++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageServlet.java @@ -56,8 +56,8 @@ public class MessageServlet extends AbstractServlet @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 AbstractServlet 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 AbstractServlet 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; diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java index 8ea0aa538a..c05b4e30d6 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java +++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java @@ -115,16 +115,15 @@ public class RestServlet extends AbstractServlet 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 AbstractServlet 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()) diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/UserPreferencesServlet.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/UserPreferencesServlet.java index 808e3210dd..56e83db4d2 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/UserPreferencesServlet.java +++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/UserPreferencesServlet.java @@ -50,11 +50,7 @@ public class UserPreferencesServlet extends AbstractServlet 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); |
