Author: rgodfrey
Date: Tue Jul 7 23:36:36 2015
New Revision: 1689776
URL: http://svn.apache.org/r1689776
Log:
QPID-6626 : Address review comments by [~k-wall]
Added:
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/RewriteServlet.java
(with props)
Modified:
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/DefinedFileServlet.java
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/RootServlet.java
Modified:
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java?rev=1689776&r1=1689775&r2=1689776&view=diff
==============================================================================
---
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java
(original)
+++
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java
Tue Jul 7 23:36:36 2015
@@ -305,10 +305,13 @@ public class HttpManagement extends Abst
addRestServlet(root, Broker.class);
ServletHolder apiDocsServlet = new ServletHolder(new
ApiDocsServlet(getModel(), Collections.<String>emptyList()));
- root.addServlet(apiDocsServlet, "/apidocs");
- root.addServlet(apiDocsServlet, "/apidocs/");
- root.addServlet(apiDocsServlet, "/apidocs/latest");
- root.addServlet(apiDocsServlet, "/apidocs/latest/");
+ final ServletHolder rewriteSerlvet = new ServletHolder(new
RewriteServlet("^(.*)$", "$1/"));
+ for(String path : new String[]{"/apidocs", "/apidocs/latest",
"/apidocs/"+getLatestSupportedVersion()})
+ {
+ root.addServlet(rewriteSerlvet, path);
+ root.addServlet(apiDocsServlet, path + "/");
+ }
+
root.addServlet(new ServletHolder(new UserPreferencesServlet()),
"/service/userpreferences/*");
root.addServlet(new ServletHolder(new
LoggedOnUserPreferencesServlet()), "/service/preferences");
root.addServlet(new ServletHolder(new StructureServlet()),
"/service/structure");
@@ -519,7 +522,13 @@ public class HttpManagement extends Abst
private List<String> getSupportedRestApiVersions()
{
- return
Collections.singletonList(String.valueOf(BrokerModel.MODEL_MAJOR_VERSION));
+ // TODO - actually support multiple versions and add those versions to
the list
+ return Collections.singletonList(getLatestSupportedVersion());
+ }
+
+ private String getLatestSupportedVersion()
+ {
+ return "v"+String.valueOf(BrokerModel.MODEL_MAJOR_VERSION);
}
private void logOperationalListenMessages(Collection<Port<?>> ports)
Added:
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/RewriteServlet.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/RewriteServlet.java?rev=1689776&view=auto
==============================================================================
---
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/RewriteServlet.java
(added)
+++
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/RewriteServlet.java
Tue Jul 7 23:36:36 2015
@@ -0,0 +1,53 @@
+/*
+ *
+ * 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 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);
+ }
+}
Propchange:
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/RewriteServlet.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified:
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/DefinedFileServlet.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/DefinedFileServlet.java?rev=1689776&r1=1689775&r2=1689776&view=diff
==============================================================================
---
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/DefinedFileServlet.java
(original)
+++
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/DefinedFileServlet.java
Tue Jul 7 23:36:36 2015
@@ -97,6 +97,7 @@ public class DefinedFileServlet extends
}
else
{
+ response.setStatus(HttpServletResponse.SC_NOT_FOUND);
try (OutputStream output =
HttpManagementUtil.getOutputStream(request, response))
{
final String notFoundMessage = "Unknown path '"
@@ -106,7 +107,6 @@ public class DefinedFileServlet extends
+ "://" + request.getServerName() + ":" +
request.getServerPort() + _apiDocsPath + "\n";
output.write(notFoundMessage.getBytes(StandardCharsets.UTF_8));
}
- response.setStatus(HttpServletResponse.SC_NOT_FOUND);
}
}
}
Modified:
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/RootServlet.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/RootServlet.java?rev=1689776&r1=1689775&r2=1689776&view=diff
==============================================================================
---
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/RootServlet.java
(original)
+++
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/RootServlet.java
Tue Jul 7 23:36:36 2015
@@ -80,6 +80,7 @@ public class RootServlet extends HttpSer
else
{
+ response.setStatus(HttpServletResponse.SC_NOT_FOUND);
try (OutputStream output =
HttpManagementUtil.getOutputStream(request, response))
{
final String notFoundMessage = "Unknown path '"
@@ -89,7 +90,6 @@ public class RootServlet extends HttpSer
+ "://" + request.getServerName() + ":" +
request.getServerPort() + _apiDocsPath + "\n";
output.write(notFoundMessage.getBytes(StandardCharsets.UTF_8));
}
- response.setStatus(HttpServletResponse.SC_NOT_FOUND);
}
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]