Author: kkolinko Date: Mon Feb 4 14:02:18 2019 New Revision: 1852916 URL: http://svn.apache.org/viewvc?rev=1852916&view=rev Log: Use client's preferred language for the Server Status page of the Manager web application. Review and fix several cases when the client's language preference was not respected in Manager and Host Manager web applications.
Modified: tomcat/trunk/java/org/apache/catalina/manager/HTMLManagerServlet.java tomcat/trunk/java/org/apache/catalina/manager/ManagerServlet.java tomcat/trunk/java/org/apache/catalina/manager/StatusManagerServlet.java tomcat/trunk/java/org/apache/catalina/manager/host/HTMLHostManagerServlet.java tomcat/trunk/java/org/apache/catalina/manager/host/HostManagerServlet.java tomcat/trunk/webapps/docs/changelog.xml Modified: tomcat/trunk/java/org/apache/catalina/manager/HTMLManagerServlet.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/manager/HTMLManagerServlet.java?rev=1852916&r1=1852915&r2=1852916&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/manager/HTMLManagerServlet.java (original) +++ tomcat/trunk/java/org/apache/catalina/manager/HTMLManagerServlet.java Mon Feb 4 14:02:18 2019 @@ -139,11 +139,11 @@ public final class HTMLManagerServlet ex e.toString()); } } else if (command.equals("/sslConnectorCiphers")) { - sslConnectorCiphers(request, response); + sslConnectorCiphers(request, response, smClient); } else if (command.equals("/sslConnectorCerts")) { - sslConnectorCerts(request, response); + sslConnectorCerts(request, response, smClient); } else if (command.equals("/sslConnectorTrustedCerts")) { - sslConnectorTrustedCerts(request, response); + sslConnectorTrustedCerts(request, response, smClient); } else if (command.equals("/upload") || command.equals("/deploy") || command.equals("/reload") || command.equals("/undeploy") || command.equals("/expire") || command.equals("/start") || @@ -764,24 +764,24 @@ public final class HTMLManagerServlet ex protected void sslConnectorCiphers(HttpServletRequest request, - HttpServletResponse response) throws ServletException, IOException { - request.setAttribute("cipherList", getConnectorCiphers()); + HttpServletResponse response, StringManager smClient) throws ServletException, IOException { + request.setAttribute("cipherList", getConnectorCiphers(smClient)); getServletContext().getRequestDispatcher( connectorCiphersJspPath).forward(request, response); } protected void sslConnectorCerts(HttpServletRequest request, - HttpServletResponse response) throws ServletException, IOException { - request.setAttribute("certList", getConnectorCerts()); + HttpServletResponse response, StringManager smClient) throws ServletException, IOException { + request.setAttribute("certList", getConnectorCerts(smClient)); getServletContext().getRequestDispatcher( connectorCertsJspPath).forward(request, response); } protected void sslConnectorTrustedCerts(HttpServletRequest request, - HttpServletResponse response) throws ServletException, IOException { - request.setAttribute("trustedCertList", getConnectorTrustedCerts()); + HttpServletResponse response, StringManager smClient) throws ServletException, IOException { + request.setAttribute("trustedCertList", getConnectorTrustedCerts(smClient)); getServletContext().getRequestDispatcher( connectorTrustedCertsJspPath).forward(request, response); } Modified: tomcat/trunk/java/org/apache/catalina/manager/ManagerServlet.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/manager/ManagerServlet.java?rev=1852916&r1=1852915&r2=1852916&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/manager/ManagerServlet.java (original) +++ tomcat/trunk/java/org/apache/catalina/manager/ManagerServlet.java Mon Feb 4 14:02:18 2019 @@ -627,7 +627,7 @@ public class ManagerServlet extends Http protected void sslConnectorCiphers(PrintWriter writer, StringManager smClient) { writer.println(smClient.getString("managerServlet.sslConnectorCiphers")); - Map<String,List<String>> connectorCiphers = getConnectorCiphers(); + Map<String,List<String>> connectorCiphers = getConnectorCiphers(smClient); for (Map.Entry<String,List<String>> entry : connectorCiphers.entrySet()) { writer.println(entry.getKey()); for (String cipher : entry.getValue()) { @@ -640,7 +640,7 @@ public class ManagerServlet extends Http private void sslConnectorCerts(PrintWriter writer, StringManager smClient) { writer.println(smClient.getString("managerServlet.sslConnectorCerts")); - Map<String,List<String>> connectorCerts = getConnectorCerts(); + Map<String,List<String>> connectorCerts = getConnectorCerts(smClient); for (Map.Entry<String,List<String>> entry : connectorCerts.entrySet()) { writer.println(entry.getKey()); for (String cert : entry.getValue()) { @@ -652,7 +652,7 @@ public class ManagerServlet extends Http private void sslConnectorTrustedCerts(PrintWriter writer, StringManager smClient) { writer.println(smClient.getString("managerServlet.sslConnectorTrustedCerts")); - Map<String,List<String>> connectorTrustedCerts = getConnectorTrustedCerts(); + Map<String,List<String>> connectorTrustedCerts = getConnectorTrustedCerts(smClient); for (Map.Entry<String,List<String>> entry : connectorTrustedCerts.entrySet()) { writer.println(entry.getKey()); for (String cert : entry.getValue()) { @@ -1237,7 +1237,7 @@ public class ManagerServlet extends Http if (debug >= 1) log("serverinfo"); try { - writer.println(sm.getString("managerServlet.serverInfo", ServerInfo.getServerInfo(), + writer.println(smClient.getString("managerServlet.serverInfo", ServerInfo.getServerInfo(), System.getProperty("os.name"), System.getProperty("os.version"), System.getProperty("os.arch"), System.getProperty("java.runtime.version"), System.getProperty("java.vm.vendor"))); } catch (Throwable t) { @@ -1664,7 +1664,7 @@ public class ManagerServlet extends Http protected static boolean validateContextName(ContextName cn, - PrintWriter writer, StringManager sm) { + PrintWriter writer, StringManager smClient) { // ContextName should be non-null with a path that is empty or starts // with / @@ -1677,11 +1677,11 @@ public class ManagerServlet extends Http if (cn != null) { path = Escape.htmlElementContent(cn.getPath()); } - writer.println(sm.getString("managerServlet.invalidPath", path)); + writer.println(smClient.getString("managerServlet.invalidPath", path)); return false; } - protected Map<String,List<String>> getConnectorCiphers() { + protected Map<String,List<String>> getConnectorCiphers(StringManager smClient) { Map<String,List<String>> result = new HashMap<>(); Connector connectors[] = getConnectors(); @@ -1696,7 +1696,7 @@ public class ManagerServlet extends Http } } else { ArrayList<String> cipherList = new ArrayList<>(1); - cipherList.add(sm.getString("managerServlet.notSslConnector")); + cipherList.add(smClient.getString("managerServlet.notSslConnector")); result.put(connector.toString(), cipherList); } } @@ -1704,7 +1704,7 @@ public class ManagerServlet extends Http } - protected Map<String,List<String>> getConnectorCerts() { + protected Map<String,List<String>> getConnectorCerts(StringManager smClient) { Map<String,List<String>> result = new HashMap<>(); Connector connectors[] = getConnectors(); @@ -1727,7 +1727,7 @@ public class ManagerServlet extends Http } X509Certificate[] certs = sslContext.getCertificateChain(alias); if (certs == null) { - certList.add(sm.getString("managerServlet.certsNotAvailable")); + certList.add(smClient.getString("managerServlet.certsNotAvailable")); } else { for (Certificate cert : certs) { certList.add(cert.toString()); @@ -1737,14 +1737,14 @@ public class ManagerServlet extends Http } } else { List<String> certList = new ArrayList<>(); - certList.add(sm.getString("managerServlet.certsNotAvailable")); + certList.add(smClient.getString("managerServlet.certsNotAvailable")); String name = connector.toString() + "-" + sslHostConfig.getHostName(); result.put(name, certList); } } } else { List<String> certList = new ArrayList<>(1); - certList.add(sm.getString("managerServlet.notSslConnector")); + certList.add(smClient.getString("managerServlet.notSslConnector")); result.put(connector.toString(), certList); } } @@ -1753,7 +1753,7 @@ public class ManagerServlet extends Http } - protected Map<String,List<String>> getConnectorTrustedCerts() { + protected Map<String,List<String>> getConnectorTrustedCerts(StringManager smClient) { Map<String,List<String>> result = new HashMap<>(); Connector connectors[] = getConnectors(); @@ -1769,22 +1769,22 @@ public class ManagerServlet extends Http sslHostConfig.getCertificates().iterator().next().getSslContext(); X509Certificate[] certs = sslContext.getAcceptedIssuers(); if (certs == null) { - certList.add(sm.getString("managerServlet.certsNotAvailable")); + certList.add(smClient.getString("managerServlet.certsNotAvailable")); } else if (certs.length == 0) { - certList.add(sm.getString("managerServlet.trustedCertsNotConfigured")); + certList.add(smClient.getString("managerServlet.trustedCertsNotConfigured")); } else { for (Certificate cert : certs) { certList.add(cert.toString()); } } } else { - certList.add(sm.getString("managerServlet.certsNotAvailable")); + certList.add(smClient.getString("managerServlet.certsNotAvailable")); } result.put(name, certList); } } else { List<String> certList = new ArrayList<>(1); - certList.add(sm.getString("managerServlet.notSslConnector")); + certList.add(smClient.getString("managerServlet.notSslConnector")); result.put(connector.toString(), certList); } } Modified: tomcat/trunk/java/org/apache/catalina/manager/StatusManagerServlet.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/manager/StatusManagerServlet.java?rev=1852916&r1=1852915&r2=1852916&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/manager/StatusManagerServlet.java (original) +++ tomcat/trunk/java/org/apache/catalina/manager/StatusManagerServlet.java Mon Feb 4 14:02:18 2019 @@ -195,6 +195,9 @@ public class StatusManagerServlet HttpServletResponse response) throws IOException, ServletException { + StringManager smClient = StringManager.getManager( + Constants.Package, request.getLocales()); + // mode is flag for HTML or XML output int mode = 0; // if ?XML=true, set the mode to XML @@ -220,49 +223,49 @@ public class StatusManagerServlet args = new Object[2]; args[0] = request.getContextPath(); if (completeStatus) { - args[1] = sm.getString("statusServlet.complete"); + args[1] = smClient.getString("statusServlet.complete"); } else { - args[1] = sm.getString("statusServlet.title"); + args[1] = smClient.getString("statusServlet.title"); } // use StatusTransformer to output status StatusTransformer.writeBody(writer,args,mode); // Manager Section args = new Object[9]; - args[0] = sm.getString("htmlManagerServlet.manager"); + args[0] = smClient.getString("htmlManagerServlet.manager"); args[1] = response.encodeURL(request.getContextPath() + "/html/list"); - args[2] = sm.getString("htmlManagerServlet.list"); + args[2] = smClient.getString("htmlManagerServlet.list"); args[3] = response.encodeURL (request.getContextPath() + "/" + - sm.getString("htmlManagerServlet.helpHtmlManagerFile")); - args[4] = sm.getString("htmlManagerServlet.helpHtmlManager"); + smClient.getString("htmlManagerServlet.helpHtmlManagerFile")); + args[4] = smClient.getString("htmlManagerServlet.helpHtmlManager"); args[5] = response.encodeURL (request.getContextPath() + "/" + - sm.getString("htmlManagerServlet.helpManagerFile")); - args[6] = sm.getString("htmlManagerServlet.helpManager"); + smClient.getString("htmlManagerServlet.helpManagerFile")); + args[6] = smClient.getString("htmlManagerServlet.helpManager"); if (completeStatus) { args[7] = response.encodeURL (request.getContextPath() + "/status"); - args[8] = sm.getString("statusServlet.title"); + args[8] = smClient.getString("statusServlet.title"); } else { args[7] = response.encodeURL (request.getContextPath() + "/status/all"); - args[8] = sm.getString("statusServlet.complete"); + args[8] = smClient.getString("statusServlet.complete"); } // use StatusTransformer to output status StatusTransformer.writeManager(writer,args,mode); // Server Header Section args = new Object[9]; - args[0] = sm.getString("htmlManagerServlet.serverTitle"); - args[1] = sm.getString("htmlManagerServlet.serverVersion"); - args[2] = sm.getString("htmlManagerServlet.serverJVMVersion"); - args[3] = sm.getString("htmlManagerServlet.serverJVMVendor"); - args[4] = sm.getString("htmlManagerServlet.serverOSName"); - args[5] = sm.getString("htmlManagerServlet.serverOSVersion"); - args[6] = sm.getString("htmlManagerServlet.serverOSArch"); - args[7] = sm.getString("htmlManagerServlet.serverHostname"); - args[8] = sm.getString("htmlManagerServlet.serverIPAddress"); + args[0] = smClient.getString("htmlManagerServlet.serverTitle"); + args[1] = smClient.getString("htmlManagerServlet.serverVersion"); + args[2] = smClient.getString("htmlManagerServlet.serverJVMVersion"); + args[3] = smClient.getString("htmlManagerServlet.serverJVMVendor"); + args[4] = smClient.getString("htmlManagerServlet.serverOSName"); + args[5] = smClient.getString("htmlManagerServlet.serverOSVersion"); + args[6] = smClient.getString("htmlManagerServlet.serverOSArch"); + args[7] = smClient.getString("htmlManagerServlet.serverHostname"); + args[8] = smClient.getString("htmlManagerServlet.serverIPAddress"); // use StatusTransformer to output status StatusTransformer.writePageHeading(writer,args,mode); @@ -289,26 +292,26 @@ public class StatusManagerServlet // Display operating system statistics using APR if available args = new Object[7]; - args[0] = sm.getString("htmlManagerServlet.osPhysicalMemory"); - args[1] = sm.getString("htmlManagerServlet.osAvailableMemory"); - args[2] = sm.getString("htmlManagerServlet.osTotalPageFile"); - args[3] = sm.getString("htmlManagerServlet.osFreePageFile"); - args[4] = sm.getString("htmlManagerServlet.osMemoryLoad"); - args[5] = sm.getString("htmlManagerServlet.osKernelTime"); - args[6] = sm.getString("htmlManagerServlet.osUserTime"); + args[0] = smClient.getString("htmlManagerServlet.osPhysicalMemory"); + args[1] = smClient.getString("htmlManagerServlet.osAvailableMemory"); + args[2] = smClient.getString("htmlManagerServlet.osTotalPageFile"); + args[3] = smClient.getString("htmlManagerServlet.osFreePageFile"); + args[4] = smClient.getString("htmlManagerServlet.osMemoryLoad"); + args[5] = smClient.getString("htmlManagerServlet.osKernelTime"); + args[6] = smClient.getString("htmlManagerServlet.osUserTime"); StatusTransformer.writeOSState(writer, mode, args); // Display virtual machine statistics args = new Object[9]; - args[0] = sm.getString("htmlManagerServlet.jvmFreeMemory"); - args[1] = sm.getString("htmlManagerServlet.jvmTotalMemory"); - args[2] = sm.getString("htmlManagerServlet.jvmMaxMemory"); - args[3] = sm.getString("htmlManagerServlet.jvmTableTitleMemoryPool"); - args[4] = sm.getString("htmlManagerServlet.jvmTableTitleType"); - args[5] = sm.getString("htmlManagerServlet.jvmTableTitleInitial"); - args[6] = sm.getString("htmlManagerServlet.jvmTableTitleTotal"); - args[7] = sm.getString("htmlManagerServlet.jvmTableTitleMaximum"); - args[8] = sm.getString("htmlManagerServlet.jvmTableTitleUsed"); + args[0] = smClient.getString("htmlManagerServlet.jvmFreeMemory"); + args[1] = smClient.getString("htmlManagerServlet.jvmTotalMemory"); + args[2] = smClient.getString("htmlManagerServlet.jvmMaxMemory"); + args[3] = smClient.getString("htmlManagerServlet.jvmTableTitleMemoryPool"); + args[4] = smClient.getString("htmlManagerServlet.jvmTableTitleType"); + args[5] = smClient.getString("htmlManagerServlet.jvmTableTitleInitial"); + args[6] = smClient.getString("htmlManagerServlet.jvmTableTitleTotal"); + args[7] = smClient.getString("htmlManagerServlet.jvmTableTitleMaximum"); + args[8] = smClient.getString("htmlManagerServlet.jvmTableTitleUsed"); // use StatusTransformer to output status StatusTransformer.writeVMState(writer,mode, args); @@ -317,25 +320,25 @@ public class StatusManagerServlet ObjectName objectName = enumeration.nextElement(); String name = objectName.getKeyProperty("name"); args = new Object[19]; - args[0] = sm.getString("htmlManagerServlet.connectorStateMaxThreads"); - args[1] = sm.getString("htmlManagerServlet.connectorStateThreadCount"); - args[2] = sm.getString("htmlManagerServlet.connectorStateThreadBusy"); - args[3] = sm.getString("htmlManagerServlet.connectorStateAliveSocketCount"); - args[4] = sm.getString("htmlManagerServlet.connectorStateMaxProcessingTime"); - args[5] = sm.getString("htmlManagerServlet.connectorStateProcessingTime"); - args[6] = sm.getString("htmlManagerServlet.connectorStateRequestCount"); - args[7] = sm.getString("htmlManagerServlet.connectorStateErrorCount"); - args[8] = sm.getString("htmlManagerServlet.connectorStateBytesRecieved"); - args[9] = sm.getString("htmlManagerServlet.connectorStateBytesSent"); - args[10] = sm.getString("htmlManagerServlet.connectorStateTableTitleStage"); - args[11] = sm.getString("htmlManagerServlet.connectorStateTableTitleTime"); - args[12] = sm.getString("htmlManagerServlet.connectorStateTableTitleBSent"); - args[13] = sm.getString("htmlManagerServlet.connectorStateTableTitleBRecv"); - args[14] = sm.getString("htmlManagerServlet.connectorStateTableTitleClientForw"); - args[15] = sm.getString("htmlManagerServlet.connectorStateTableTitleClientAct"); - args[16] = sm.getString("htmlManagerServlet.connectorStateTableTitleVHost"); - args[17] = sm.getString("htmlManagerServlet.connectorStateTableTitleRequest"); - args[18] = sm.getString("htmlManagerServlet.connectorStateHint"); + args[0] = smClient.getString("htmlManagerServlet.connectorStateMaxThreads"); + args[1] = smClient.getString("htmlManagerServlet.connectorStateThreadCount"); + args[2] = smClient.getString("htmlManagerServlet.connectorStateThreadBusy"); + args[3] = smClient.getString("htmlManagerServlet.connectorStateAliveSocketCount"); + args[4] = smClient.getString("htmlManagerServlet.connectorStateMaxProcessingTime"); + args[5] = smClient.getString("htmlManagerServlet.connectorStateProcessingTime"); + args[6] = smClient.getString("htmlManagerServlet.connectorStateRequestCount"); + args[7] = smClient.getString("htmlManagerServlet.connectorStateErrorCount"); + args[8] = smClient.getString("htmlManagerServlet.connectorStateBytesRecieved"); + args[9] = smClient.getString("htmlManagerServlet.connectorStateBytesSent"); + args[10] = smClient.getString("htmlManagerServlet.connectorStateTableTitleStage"); + args[11] = smClient.getString("htmlManagerServlet.connectorStateTableTitleTime"); + args[12] = smClient.getString("htmlManagerServlet.connectorStateTableTitleBSent"); + args[13] = smClient.getString("htmlManagerServlet.connectorStateTableTitleBRecv"); + args[14] = smClient.getString("htmlManagerServlet.connectorStateTableTitleClientForw"); + args[15] = smClient.getString("htmlManagerServlet.connectorStateTableTitleClientAct"); + args[16] = smClient.getString("htmlManagerServlet.connectorStateTableTitleVHost"); + args[17] = smClient.getString("htmlManagerServlet.connectorStateTableTitleRequest"); + args[18] = smClient.getString("htmlManagerServlet.connectorStateHint"); // use StatusTransformer to output status StatusTransformer.writeConnectorState (writer, objectName, Modified: tomcat/trunk/java/org/apache/catalina/manager/host/HTMLHostManagerServlet.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/manager/host/HTMLHostManagerServlet.java?rev=1852916&r1=1852915&r2=1852916&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/manager/host/HTMLHostManagerServlet.java (original) +++ tomcat/trunk/java/org/apache/catalina/manager/host/HTMLHostManagerServlet.java Mon Feb 4 14:02:18 2019 @@ -330,6 +330,8 @@ public final class HTMLHostManagerServle smClient.getString("htmlHostManagerServlet.hostsStop"); String hostsRemove = smClient.getString("htmlHostManagerServlet.hostsRemove"); + String hostThis = + smClient.getString("htmlHostManagerServlet.hostThis"); for (Map.Entry<String, String> entry : sortedHostNamesMap.entrySet()) { String hostName = entry.getKey(); @@ -357,7 +359,7 @@ public final class HTMLHostManagerServle writer.print (MessageFormat.format(HOSTS_ROW_DETAILS_SECTION, args)); - args = new Object[4]; + args = new Object[5]; if (host.getState().isAvailable()) { args[0] = response.encodeURL (request.getContextPath() + @@ -376,6 +378,7 @@ public final class HTMLHostManagerServle "/html/remove?name=" + URLEncoder.encode(hostName, "UTF-8")); args[3] = hostsRemove; + args[4] = hostThis; if (host == this.installedHost) { writer.print(MessageFormat.format( MANAGER_HOST_ROW_BUTTON_SECTION, args)); @@ -493,9 +496,7 @@ public final class HTMLHostManagerServle private static final String MANAGER_HOST_ROW_BUTTON_SECTION = " <td class=\"row-left\">\n" + - " <small>\n" + - sm.getString("htmlHostManagerServlet.hostThis") + - " </small>\n" + + " <small>{4}</small>\n" + " </td>\n" + "</tr>\n"; Modified: tomcat/trunk/java/org/apache/catalina/manager/host/HostManagerServlet.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/manager/host/HostManagerServlet.java?rev=1852916&r1=1852915&r2=1852916&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/manager/host/HostManagerServlet.java (original) +++ tomcat/trunk/java/org/apache/catalina/manager/host/HostManagerServlet.java Mon Feb 4 14:02:18 2019 @@ -213,7 +213,7 @@ public class HostManagerServlet // Process the requested command if (command == null) { - writer.println(sm.getString("hostManagerServlet.noCommand")); + writer.println(smClient.getString("hostManagerServlet.noCommand")); } else if (command.equals("/add")) { add(request, writer, name, false, smClient); } else if (command.equals("/remove")) { @@ -227,7 +227,7 @@ public class HostManagerServlet } else if (command.equals("/persist")) { persist(writer, smClient); } else { - writer.println(sm.getString("hostManagerServlet.unknownCommand", + writer.println(smClient.getString("hostManagerServlet.unknownCommand", command)); } Modified: tomcat/trunk/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1852916&r1=1852915&r2=1852916&view=diff ============================================================================== --- tomcat/trunk/webapps/docs/changelog.xml (original) +++ tomcat/trunk/webapps/docs/changelog.xml Mon Feb 4 14:02:18 2019 @@ -52,6 +52,16 @@ </fix> </changelog> </subsection> + <subsection name="Web applications"> + <changelog> + <fix> + Use client's preferred language for the Server Status page of the + Manager web application. Review and fix several cases when the + client's language preference was not respected in Manager and + Host Manager web applications. (kkolinko) + </fix> + </changelog> + </subsection> <subsection name="Other"> <changelog> <update> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org