Author: markt
Date: Fri Aug 31 16:08:45 2018
New Revision: 1839765

URL: http://svn.apache.org/viewvc?rev=1839765&view=rev
Log:
Fix https://bz.apache.org/bugzilla/show_bug.cgi?id=62666
Expand internationalisation support in the Manager application to include the 
server status page and provide Russian translations in addition to English.
Patch provided by Artem Chebykin.

Modified:
    tomcat/trunk/java/org/apache/catalina/manager/LocalStrings.properties
    tomcat/trunk/java/org/apache/catalina/manager/LocalStrings_ru.properties
    tomcat/trunk/java/org/apache/catalina/manager/StatusManagerServlet.java
    tomcat/trunk/java/org/apache/catalina/manager/StatusTransformer.java
    tomcat/trunk/webapps/docs/changelog.xml

Modified: tomcat/trunk/java/org/apache/catalina/manager/LocalStrings.properties
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/manager/LocalStrings.properties?rev=1839765&r1=1839764&r2=1839765&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/manager/LocalStrings.properties 
[UTF-8] (original)
+++ tomcat/trunk/java/org/apache/catalina/manager/LocalStrings.properties 
[UTF-8] Fri Aug 31 16:08:45 2018
@@ -136,3 +136,38 @@ managerServlet.unknownCommand=FAIL - Unk
 managerServlet.vminfo=OK - VM info
 statusServlet.title=Server Status
 statusServlet.complete=Complete Server Status
+htmlManagerServlet.osPhysicalMemory=Physical memory:
+htmlManagerServlet.osAvailableMemory=Available memory:
+htmlManagerServlet.osTotalPageFile=Total page file:
+htmlManagerServlet.osFreePageFile=Free page file:
+htmlManagerServlet.osMemoryLoad=Memory load:
+htmlManagerServlet.osKernelTime=Process kernel time:
+htmlManagerServlet.osUserTime=Process user time:
+htmlManagerServlet.jvmFreeMemory=Free Memory:
+htmlManagerServlet.jvmMaxMemory=Max Memory:
+htmlManagerServlet.jvmTotalMemory=Total Memory:
+htmlManagerServlet.jvmTableTitleMemoryPool=Memory Pool
+htmlManagerServlet.jvmTableTitleType=Type
+htmlManagerServlet.jvmTableTitleInitial=Initial
+htmlManagerServlet.jvmTableTitleTotal=Total
+htmlManagerServlet.jvmTableTitleMaximum=Maximum
+htmlManagerServlet.jvmTableTitleUsed=Used
+htmlManagerServlet.connectorStateMaxThreads=Max threads:
+htmlManagerServlet.connectorStateThreadCount=Current thread count:
+htmlManagerServlet.connectorStateThreadBusy=Current thread busy:
+htmlManagerServlet.connectorStateAliveSocketCount=Keep alive sockets count:
+htmlManagerServlet.connectorStateMaxProcessingTime=Max processing time:
+htmlManagerServlet.connectorStateProcessingTime=Processing time:
+htmlManagerServlet.connectorStateRequestCount=Request count:
+htmlManagerServlet.connectorStateErrorCount=Error count:
+htmlManagerServlet.connectorStateBytesRecieved=Bytes received:
+htmlManagerServlet.connectorStateBytesSent=Bytes sent:
+htmlManagerServlet.connectorStateTableTitleStage=Stage
+htmlManagerServlet.connectorStateTableTitleTime=Time
+htmlManagerServlet.connectorStateTableTitleBSent=B Sent
+htmlManagerServlet.connectorStateTableTitleBRecv=B Recv
+htmlManagerServlet.connectorStateTableTitleClientForw=Client (Forwarded)
+htmlManagerServlet.connectorStateTableTitleClientAct=Client (Actual)
+htmlManagerServlet.connectorStateTableTitleVHost=VHost
+htmlManagerServlet.connectorStateTableTitleRequest=Request
+htmlManagerServlet.connectorStateHint=P: Parse and prepare request S: Service 
F: Finishing R: Ready K: Keepalive

Modified: 
tomcat/trunk/java/org/apache/catalina/manager/LocalStrings_ru.properties
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/manager/LocalStrings_ru.properties?rev=1839765&r1=1839764&r2=1839765&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/manager/LocalStrings_ru.properties 
[UTF-8] (original)
+++ tomcat/trunk/java/org/apache/catalina/manager/LocalStrings_ru.properties 
[UTF-8] Fri Aug 31 16:08:45 2018
@@ -136,3 +136,38 @@ managerServlet.unknownCommand=ОШИБК
 managerServlet.vminfo=OK - VM инфо
 statusServlet.title=Состояние сервера
 statusServlet.complete=Состояние сервера
+htmlManagerServlet.osPhysicalMemory=Физическая память:
+htmlManagerServlet.osAvailableMemory=Доступная память:
+htmlManagerServlet.osTotalPageFile=Всего файловых страниц:
+htmlManagerServlet.osFreePageFile=Свободные файловые страницы:
+htmlManagerServlet.osMemoryLoad=Памяти Загружено:
+htmlManagerServlet.osKernelTime=Время Обработки процесса ядром:
+htmlManagerServlet.osUserTime=Время обработки пользователя:
+htmlManagerServlet.jvmFreeMemory=Свободная Память:
+htmlManagerServlet.jvmMaxMemory=Максимум памяти:
+htmlManagerServlet.jvmTotalMemory=Вся память:
+htmlManagerServlet.jvmTableTitleMemoryPool=Области памяти
+htmlManagerServlet.jvmTableTitleType=Тип
+htmlManagerServlet.jvmTableTitleInitial=Изначально
+htmlManagerServlet.jvmTableTitleTotal=Всего
+htmlManagerServlet.jvmTableTitleMaximum=Максимум
+htmlManagerServlet.jvmTableTitleUsed=Используется
+htmlManagerServlet.connectorStateMaxThreads=Максимум процессов:
+htmlManagerServlet.connectorStateThreadCount=Нынешнее число процессов:
+htmlManagerServlet.connectorStateThreadBusy=Нынешнее число занятых процессов:
+htmlManagerServlet.connectorStateAliveSocketCount=Количество всё ещё живых 
сокетов:
+htmlManagerServlet.connectorStateMaxProcessingTime=Максимальное процессорное 
время:
+htmlManagerServlet.connectorStateProcessingTime=Процессорное время:
+htmlManagerServlet.connectorStateRequestCount=Количество запросов:
+htmlManagerServlet.connectorStateErrorCount=Количество ошибок:
+htmlManagerServlet.connectorStateBytesRecieved=Байтов получено:
+htmlManagerServlet.connectorStateBytesSent=Байтов отправлено:
+htmlManagerServlet.connectorStateTableTitleStage=Этап
+htmlManagerServlet.connectorStateTableTitleTime=Время
+htmlManagerServlet.connectorStateTableTitleBSent=Б Отпрвлено
+htmlManagerServlet.connectorStateTableTitleBRecv=Б Получено
+htmlManagerServlet.connectorStateTableTitleClientForw=Клиент (Отосланый)
+htmlManagerServlet.connectorStateTableTitleClientAct=Клиент (Настоящий)
+htmlManagerServlet.connectorStateTableTitleVHost=ВХост
+htmlManagerServlet.connectorStateTableTitleRequest=Запросы
+htmlManagerServlet.connectorStateHint=P: Разбирается и готовится к отправки S: 
Сервис F: Завершение R: Готов K: Продолжает существовать

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=1839765&r1=1839764&r2=1839765&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/manager/StatusManagerServlet.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/manager/StatusManagerServlet.java Fri 
Aug 31 16:08:45 2018
@@ -283,20 +283,59 @@ public class StatusManagerServlet
         try {
 
             // Display operating system statistics using APR if available
-            StatusTransformer.writeOSState(writer,mode);
+            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");
+            StatusTransformer.writeOSState(writer, mode, args);
 
             // Display virtual machine statistics
-            StatusTransformer.writeVMState(writer,mode);
+            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");
+            // use StatusTransformer to output status
+            StatusTransformer.writeVMState(writer,mode, args);
 
             Enumeration<ObjectName> enumeration = threadPools.elements();
             while (enumeration.hasMoreElements()) {
                 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");
                 // use StatusTransformer to output status
                 StatusTransformer.writeConnectorState
                     (writer, objectName,
                      name, mBeanServer, globalRequestProcessors,
-                     requestProcessors, mode);
+                     requestProcessors, mode, args);
             }
 
             if ((request.getPathInfo() != null)

Modified: tomcat/trunk/java/org/apache/catalina/manager/StatusTransformer.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/manager/StatusTransformer.java?rev=1839765&r1=1839764&r2=1839765&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/manager/StatusTransformer.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/manager/StatusTransformer.java Fri 
Aug 31 16:08:45 2018
@@ -147,9 +147,10 @@ public class StatusTransformer {
      *
      * @param writer The output writer
      * @param mode Mode <code>0</code> will generate HTML.
-     *   Mode <code>1</code> will generate XML.
+     *             Mode <code>1</code> will generate XML.
+     * @param args I18n labels for the OS state values
      */
-    public static void writeOSState(PrintWriter writer, int mode) {
+    public static void writeOSState(PrintWriter writer, int mode, Object[] 
args) {
         long[] result = new long[16];
         boolean ok = false;
         try {
@@ -172,20 +173,20 @@ public class StatusTransformer {
                 writer.print("<h1>OS</h1>");
 
                 writer.print("<p>");
-                writer.print(" Physical memory: ");
+                writer.print( args[0] );
                 writer.print(formatSize(Long.valueOf(result[0]), true));
-                writer.print(" Available memory: ");
+                writer.print(" " + args[1]);
                 writer.print(formatSize(Long.valueOf(result[1]), true));
-                writer.print(" Total page file: ");
+                writer.print(" " + args[2]);
                 writer.print(formatSize(Long.valueOf(result[2]), true));
-                writer.print(" Free page file: ");
+                writer.print(" " + args[3]);
                 writer.print(formatSize(Long.valueOf(result[3]), true));
-                writer.print(" Memory load: ");
+                writer.print(" " + args[4]);
                 writer.print(Long.valueOf(result[6]));
                 writer.print("<br>");
-                writer.print(" Process kernel time: ");
+                writer.print(" " + args[5]);
                 writer.print(formatTime(Long.valueOf(result[11] / 1000), 
true));
-                writer.print(" Process user time: ");
+                writer.print(" " + args[6]);
                 writer.print(formatTime(Long.valueOf(result[12] / 1000), 
true));
                 writer.print("</p>");
             } else if (mode == 1){
@@ -200,10 +201,11 @@ public class StatusTransformer {
      * Write the VM state.
      * @param writer The output writer
      * @param mode Mode <code>0</code> will generate HTML.
-     *   Mode <code>1</code> will generate XML.
+     *             Mode <code>1</code> will generate XML.
+     * @param args I18n labels for the VM state values
      * @throws Exception Propagated JMX error
      */
-    public static void writeVMState(PrintWriter writer, int mode)
+    public static void writeVMState(PrintWriter writer, int mode, Object[] 
args)
         throws Exception {
 
         SortedMap<String, MemoryPoolMXBean> memoryPoolMBeans = new TreeMap<>();
@@ -216,18 +218,18 @@ public class StatusTransformer {
             writer.print("<h1>JVM</h1>");
 
             writer.print("<p>");
-            writer.print(" Free memory: ");
+            writer.print( args[0] );
             writer.print(formatSize(
                     Long.valueOf(Runtime.getRuntime().freeMemory()), true));
-            writer.print(" Total memory: ");
+            writer.print(" " + args[1] );
             writer.print(formatSize(
                     Long.valueOf(Runtime.getRuntime().totalMemory()), true));
-            writer.print(" Max memory: ");
+            writer.print(" " + args[2] );
             writer.print(formatSize(
                     Long.valueOf(Runtime.getRuntime().maxMemory()), true));
             writer.print("</p>");
 
-            writer.write("<table border=\"0\"><thead><tr><th>Memory 
Pool</th><th>Type</th><th>Initial</th><th>Total</th><th>Maximum</th><th>Used</th></tr></thead><tbody>");
+            writer.write("<table border=\"0\"><thead><tr><th>" + args[3] + 
"</th><th>" + args[4] + "</th><th>" + args[5] + "</th><th>" + args[6] + 
"</th><th>" + args[7] + "</th><th>" + args[8] + "</th></tr></thead><tbody>");
             for (MemoryPoolMXBean memoryPoolMBean : memoryPoolMBeans.values()) 
{
                 MemoryUsage usage = memoryPoolMBean.getUsage();
                 writer.write("<tr><td>");
@@ -283,13 +285,14 @@ public class StatusTransformer {
      * @param globalRequestProcessors MBean names for the global request 
processors
      * @param requestProcessors MBean names for the request processors
      * @param mode Mode <code>0</code> will generate HTML.
-     *   Mode <code>1</code> will generate XML.
+     *             Mode <code>1</code> will generate XML.
+     * @param args I18n labels for the Connector state values
      * @throws Exception Propagated JMX error
      */
     public static void writeConnectorState(PrintWriter writer,
             ObjectName tpName, String name, MBeanServer mBeanServer,
             Vector<ObjectName> globalRequestProcessors,
-            Vector<ObjectName> requestProcessors, int mode) throws Exception {
+            Vector<ObjectName> requestProcessors, int mode, Object[] args) 
throws Exception {
 
         if (mode == 0) {
             writer.print("<h1>");
@@ -297,15 +300,15 @@ public class StatusTransformer {
             writer.print("</h1>");
 
             writer.print("<p>");
-            writer.print(" Max threads: ");
+            writer.print( args[0] );
             writer.print(mBeanServer.getAttribute(tpName, "maxThreads"));
-            writer.print(" Current thread count: ");
+            writer.print(" " + args[1]);
             writer.print(mBeanServer.getAttribute(tpName, 
"currentThreadCount"));
-            writer.print(" Current thread busy: ");
+            writer.print(" " + args[2]);
             writer.print(mBeanServer.getAttribute(tpName, 
"currentThreadsBusy"));
             try {
                 Object value = mBeanServer.getAttribute(tpName, 
"keepAliveCount");
-                writer.print(" Keep alive sockets count: ");
+                writer.print(" " + args[3]);
                 writer.print(value);
             } catch (Exception e) {
                 // Ignore
@@ -328,25 +331,25 @@ public class StatusTransformer {
                 return;
             }
 
-            writer.print(" Max processing time: ");
+            writer.print( args[4] );
             writer.print(formatTime(mBeanServer.getAttribute
                                     (grpName, "maxTime"), false));
-            writer.print(" Processing time: ");
+            writer.print(" " + args[5]);
             writer.print(formatTime(mBeanServer.getAttribute
                                     (grpName, "processingTime"), true));
-            writer.print(" Request count: ");
+            writer.print(" " + args[6]);
             writer.print(mBeanServer.getAttribute(grpName, "requestCount"));
-            writer.print(" Error count: ");
+            writer.print(" " + args[7]);
             writer.print(mBeanServer.getAttribute(grpName, "errorCount"));
-            writer.print(" Bytes received: ");
+            writer.print(" " + args[8]);
             writer.print(formatSize(mBeanServer.getAttribute
                                     (grpName, "bytesReceived"), true));
-            writer.print(" Bytes sent: ");
+            writer.print(" " + args[9]);
             writer.print(formatSize(mBeanServer.getAttribute
                                     (grpName, "bytesSent"), true));
             writer.print("</p>");
 
-            writer.print("<table 
border=\"0\"><tr><th>Stage</th><th>Time</th><th>B Sent</th><th>B 
Recv</th><th>Client (Forwarded)</th><th>Client 
(Actual)</th><th>VHost</th><th>Request</th></tr>");
+            writer.print("<table border=\"0\"><tr><th>"+ args[10] + 
"</th><th>" + args[11] + "</th><th>" + args[12] +"</th><th>" + args[13] 
+"</th><th>" + args[14] + "</th><th>" + args[15] + "</th><th>" + args[16] + 
"</th><th>" + args[17] + "</th></tr>");
 
             enumeration = requestProcessors.elements();
             while (enumeration.hasMoreElements()) {
@@ -361,7 +364,7 @@ public class StatusTransformer {
             writer.print("</table>");
 
             writer.print("<p>");
-            writer.print("P: Parse and prepare request S: Service F: Finishing 
R: Ready K: Keepalive");
+            writer.print( args[18] );
             writer.print("</p>");
         } else if (mode == 1){
             writer.write("<connector name='" + name + "'>");

Modified: tomcat/trunk/webapps/docs/changelog.xml
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1839765&r1=1839764&r2=1839765&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Fri Aug 31 16:08:45 2018
@@ -101,6 +101,12 @@
         packaged in Tomcat 9.0.x is DBCP 2. Correct the names of some DBCP 2
         configuration attributes that changed between 1.x and 2.x. (markt)
       </fix>
+      <add>
+        <bug>62666</bug>: Expand internationalisation support in the Manager
+        application to include the server status page and provide Russian
+        translations in addition to English. Patch provided by Artem Chebykin.
+        (markt)
+      </add>
     </changelog>
   </subsection>
   <subsection name="Other">



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to