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 2020/09/02 19:32:51 UTC

[qpid-broker-j] 04/10: QPID-8458: [Broker-J] Removed RewriteServlet from HTTP management

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

orudyy pushed a commit to branch 7.1.x
in repository https://gitbox.apache.org/repos/asf/qpid-broker-j.git

commit 1c0446625a438569d27f7a401fadefebd253de55
Author: Tomas Vavricka <to...@deutsche-boerse.com>
AuthorDate: Tue Aug 4 14:09:27 2020 +0000

    QPID-8458: [Broker-J] Removed RewriteServlet from HTTP management
    
    (cherry picked from commit 370fb357b766c2c5d3e3016a274601650181cd1a)
---
 .../server/management/plugin/HttpManagement.java   | 11 +---
 .../server/management/plugin/RewriteServlet.java   | 55 -------------------
 .../plugin/servlet/rest/ApiDocsServlet.java        | 64 ++++++++++------------
 3 files changed, 32 insertions(+), 98 deletions(-)

diff --git a/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java b/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java
index c6bed8a..39709df 100644
--- a/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java
+++ b/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java
@@ -382,10 +382,10 @@ public class HttpManagement extends AbstractPluginAdapter<HttpManagement> implem
 
 
         ServletHolder apiDocsServlet = new ServletHolder(new ApiDocsServlet());
-        final ServletHolder rewriteSerlvet = new ServletHolder(new RewriteServlet("^(.*)$", "$1/"));
-        for(String path : new String[]{"/apidocs", "/apidocs/latest", "/apidocs/"+getLatestSupportedVersion()})
+        final String version = "v" + BrokerModel.MODEL_VERSION;
+        for (final String path : new String[]{"/apidocs", "/apidocs/latest", "/apidocs/" + version})
         {
-            root.addServlet(rewriteSerlvet, path);
+            root.addServlet(apiDocsServlet, path);
             root.addServlet(apiDocsServlet, path + "/");
         }
 
@@ -763,11 +763,6 @@ public class HttpManagement extends AbstractPluginAdapter<HttpManagement> implem
         root.addServlet(versionsServletHolder, "/api/");
     }
 
-    private String getLatestSupportedVersion()
-    {
-        return "v"+String.valueOf(BrokerModel.MODEL_VERSION);
-    }
-
     private void logOperationalListenMessages()
     {
         for (Map.Entry<HttpPort<?>, ServerConnector> portConnector : _portConnectorMap.entrySet())
diff --git a/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/RewriteServlet.java b/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/RewriteServlet.java
deleted file mode 100644
index c222662..0000000
--- a/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/RewriteServlet.java
+++ /dev/null
@@ -1,55 +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.qpid.server.management.plugin;
-
-import java.io.IOException;
-
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-public class RewriteServlet extends HttpServlet
-{
-    private static final long serialVersionUID = 1L;
-
-    private final String _pattern;
-    private final String _replacement;
-
-    public RewriteServlet(final String pattern, final String replacement)
-    {
-        _pattern = pattern;
-        _replacement = replacement;
-
-    }
-
-    @Override
-    protected void service(final HttpServletRequest req, final HttpServletResponse resp)
-            throws ServletException, IOException
-    {
-        String location = req.getRequestURI().replaceAll(_pattern, _replacement);
-        if(req.getQueryString() != null)
-        {
-            location += "?" + req.getQueryString();
-        }
-        resp.sendRedirect(location);
-    }
-}
diff --git a/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/ApiDocsServlet.java b/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/ApiDocsServlet.java
index 6e5bddc..ca1c9d2 100644
--- a/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/ApiDocsServlet.java
+++ b/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/ApiDocsServlet.java
@@ -18,17 +18,24 @@ package org.apache.qpid.server.management.plugin.servlet.rest;
 
 import java.io.IOException;
 import java.io.PrintWriter;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Comparator;
+import java.util.EnumSet;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.SortedSet;
+import java.util.TreeSet;
+import java.util.UUID;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
 
-import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
 import org.apache.qpid.server.model.ConfiguredObject;
 import org.apache.qpid.server.model.ConfiguredObjectAttribute;
 import org.apache.qpid.server.model.ConfiguredObjectAttributeOrStatistic;
@@ -45,23 +52,12 @@ public class ApiDocsServlet extends AbstractServlet
 {
     private static final long serialVersionUID = 1L;
 
-    private static final Logger LOGGER = LoggerFactory.getLogger(ApiDocsServlet.class);
-
     private static final Set<Character> VOWELS = new HashSet<>(Arrays.asList('a','e','i','o','u'));
 
     public static final Comparator<Class<? extends ConfiguredObject>> CLASS_COMPARATOR =
-            new Comparator<Class<? extends ConfiguredObject>>()
-            {
-                @Override
-                public int compare(final Class<? extends ConfiguredObject> o1,
-                                   final Class<? extends ConfiguredObject> o2)
-                {
-                    return o1.getSimpleName().compareTo(o2.getSimpleName());
-                }
-
-            };
+            Comparator.comparing(Class::getSimpleName);
 
-    private transient final ConcurrentMap<Class<? extends ConfiguredObject>, List<Class<? extends ConfiguredObject>>> _typeSpecialisations = new ConcurrentHashMap<>();
+    private final transient ConcurrentMap<Class<? extends ConfiguredObject>, List<Class<? extends ConfiguredObject>>> _typeSpecialisations = new ConcurrentHashMap<>();
 
     public ApiDocsServlet()
     {
@@ -71,9 +67,9 @@ public class ApiDocsServlet extends AbstractServlet
     @Override
     protected void doGet(HttpServletRequest request,
                          HttpServletResponse response,
-                         final ConfiguredObject<?> managedObject) throws ServletException, IOException
+                         final ConfiguredObject<?> managedObject) throws IOException
     {
-        ConfiguredObjectFinder finder = getConfiguredObjectFinder(managedObject);
+        final ConfiguredObjectFinder finder = getConfiguredObjectFinder(managedObject);
 
         final Class<? extends ConfiguredObject> configuredClass;
 
@@ -81,7 +77,7 @@ public class ApiDocsServlet extends AbstractServlet
 
         final String[] servletPathParts = request.getServletPath().split("/");
         final Model model = managedObject.getModel();
-        if(servletPathParts.length < 4)
+        if (servletPathParts.length < 4)
         {
             configuredClass = null;
             hierarchy = null;
@@ -100,10 +96,10 @@ public class ApiDocsServlet extends AbstractServlet
                 sendError(response, HttpServletResponse.SC_NOT_FOUND);
                 return;
             }
-            if(!_typeSpecialisations.containsKey(configuredClass))
+            if (!_typeSpecialisations.containsKey(configuredClass))
             {
-                List<Class<? extends ConfiguredObject>> types = new ArrayList<>(model
-                                                                                        .getTypeRegistry().getTypeSpecialisations(configuredClass));
+                final List<Class<? extends ConfiguredObject>> types =
+                        new ArrayList<>(model.getTypeRegistry().getTypeSpecialisations(configuredClass));
                 _typeSpecialisations.putIfAbsent(configuredClass, types);
             }
         }
@@ -111,12 +107,12 @@ public class ApiDocsServlet extends AbstractServlet
         response.setStatus(HttpServletResponse.SC_OK);
 
 
-        PrintWriter writer = response.getWriter();
+        final PrintWriter writer = response.getWriter();
 
         writePreamble(writer);
         writeHead(writer, hierarchy, configuredClass);
 
-        if(hierarchy == null)
+        if (hierarchy == null)
         {
             writer.println("<table class=\"api\">");
             writer.println("<thead>");
@@ -127,23 +123,21 @@ public class ApiDocsServlet extends AbstractServlet
             writer.println("</tr>");
             writer.println("</thead>");
             writer.println("<tbody>");
-            SortedSet<Class<? extends ConfiguredObject>> managedCategories = new TreeSet<>(CLASS_COMPARATOR);
+            final SortedSet<Class<? extends ConfiguredObject>> managedCategories = new TreeSet<>(CLASS_COMPARATOR);
             managedCategories.addAll(finder.getManagedCategories());
-            String pathStem = "/" + servletPathParts[1] + "/" + (servletPathParts.length == 2 ? "latest" : servletPathParts[2]) + "/";
-            for(Class<? extends ConfiguredObject> category : managedCategories)
+            final String pathStem = "/" + servletPathParts[1] + "/" + (servletPathParts.length == 2 ? "latest" : servletPathParts[2]) + "/";
+            for (final Class<? extends ConfiguredObject> category : managedCategories)
             {
-                Class<? extends ConfiguredObject> objClass = category;
-                String path = pathStem + category.getSimpleName().toLowerCase();
+                final String path = pathStem + category.getSimpleName().toLowerCase();
                 writer.println("<tr>");
-                writer.println("<td class=\"type\"><a href=" + ((servletPathParts.length == 2) ? "\"latest/" : "")+ objClass.getSimpleName().toLowerCase()+"\">"+objClass.getSimpleName()+"</a></td>");
+                writer.println("<td class=\"type\"><a href=" + path + ">" + category.getSimpleName() + "</a></td>");
                 writer.println("<td class=\"path\">" + path + "</td>");
-                writer.println("<td class=\"description\">"+
-                               objClass.getAnnotation(ManagedObject.class).description()+"</td>");
+                writer.println("<td class=\"description\">" +
+                        category.getAnnotation(ManagedObject.class).description()+"</td>");
                 writer.println("</tr>");
             }
             writer.println("</tbody>");
             writer.println("</table>");
-
         }
         else
         {


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