You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2020/10/30 12:35:16 UTC
[tomcat] 03/04: Fix alignment of version logger listener output.
This is an automated email from the ASF dual-hosted git repository.
markt pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tomcat.git
commit a059d48cd7a592dc25e8957b2fb5fd52bffa2978
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Fri Oct 30 12:20:52 2020 +0000
Fix alignment of version logger listener output.
This time, add a unit test to check the alignment. CJK characters are
assumed to be double width.
---
.../catalina/startup/LocalStrings_de.properties | 10 ++-
.../catalina/startup/LocalStrings_es.properties | 21 ++++--
.../catalina/startup/LocalStrings_fr.properties | 28 ++++----
.../catalina/startup/LocalStrings_ko.properties | 28 ++++----
.../catalina/startup/LocalStrings_ru.properties | 7 ++
.../catalina/startup/LocalStrings_zh_CN.properties | 8 +--
.../apache/tomcat/util/res/TestStringManager.java | 80 ++++++++++++++++++++++
7 files changed, 138 insertions(+), 44 deletions(-)
diff --git a/java/org/apache/catalina/startup/LocalStrings_de.properties b/java/org/apache/catalina/startup/LocalStrings_de.properties
index f5539fa..2b7339f 100644
--- a/java/org/apache/catalina/startup/LocalStrings_de.properties
+++ b/java/org/apache/catalina/startup/LocalStrings_de.properties
@@ -41,10 +41,8 @@ userConfig.database=Fehler beim Laden der Benutzer Datenbank.
userConfig.error=Fehler beim deployen einer Web-Applikation für den Benutzer [{0}]
userConfig.start=UserConfig: Verarbeite START
-versionLoggerListener.catalina.base=\n\
-\ CATALINA_BASE: {0}
+versionLoggerListener.catalina.base=CATALINA_BASE: {0}
versionLoggerListener.catalina.home=CATALINA_HOME: {0}
-versionLoggerListener.os.arch=Architektur: {0}
-versionLoggerListener.serverInfo.server.version=\n\
-\ Server Version: {0}
-versionLoggerListener.vm.vendor=JVM Hersteller: {0}
+versionLoggerListener.os.arch=Architektur: {0}
+versionLoggerListener.serverInfo.server.version=Server Version: {0}
+versionLoggerListener.vm.vendor=JVM Hersteller: {0}
diff --git a/java/org/apache/catalina/startup/LocalStrings_es.properties b/java/org/apache/catalina/startup/LocalStrings_es.properties
index 486245c..4d38e21 100644
--- a/java/org/apache/catalina/startup/LocalStrings_es.properties
+++ b/java/org/apache/catalina/startup/LocalStrings_es.properties
@@ -98,12 +98,21 @@ userConfig.deploy=Despliegue de la aplicación web para el usuario [{0}]
userConfig.deploying=Desplegando aplicaciones web para el usuario
userConfig.error=Error durante el despliegue de la aplicación web para el usario [{0}]
userConfig.start="UserConfig": Procesando "START"
-userConfig.stop="UserConfig": Tratamiento del "STOP"
+userConfig.stop="UserConfig": Tratamiento del "STOP":q
-versionLoggerListener.os.arch=Arquitectura: {0}\n
-versionLoggerListener.os.version=Versión de Systema Operativo: {0}\n
-versionLoggerListener.serverInfo.server.number=Número de versión de servidor: {0}
-versionLoggerListener.serverInfo.server.version=Nombre de la versión del servidor: {0}\n
-versionLoggerListener.vm.vendor=Vededor JVM: {0}
+versionLoggerListener.arg=Command line argument: {0}
+versionLoggerListener.catalina.base=CATALINA_BASE: {0}
+versionLoggerListener.catalina.home=CATALINA_HOME: {0}
+versionLoggerListener.env=Environment variable: {0} = {1}
+versionLoggerListener.java.home=Java Home: {0}
+versionLoggerListener.os.arch=Arquitectura: {0}
+versionLoggerListener.os.name=OS Name: {0}
+versionLoggerListener.os.version=Versión de Systema Operativo: {0}
+versionLoggerListener.prop=System property: {0} = {1}
+versionLoggerListener.serverInfo.server.built=Server built: {0}
+versionLoggerListener.serverInfo.server.number=Número de versión de servidor: {0}
+versionLoggerListener.serverInfo.server.version=Nombre de la versión del servidor: {0}
+versionLoggerListener.vm.vendor =Vededor JVM: {0}
+versionLoggerListener.vm.version=JVM Version: {0}
webAnnotationSet.invalidInjection=El método de inyección de anotación no es un recurso válido
diff --git a/java/org/apache/catalina/startup/LocalStrings_fr.properties b/java/org/apache/catalina/startup/LocalStrings_fr.properties
index 6d48713..ce17686 100644
--- a/java/org/apache/catalina/startup/LocalStrings_fr.properties
+++ b/java/org/apache/catalina/startup/LocalStrings_fr.properties
@@ -165,19 +165,19 @@ userConfig.error=Erreur lors du déploiement de l''application web pour l''utili
userConfig.start="UserConfig" : Traitement du "START"
userConfig.stop="UserConfig" : Traitement du "STOP"
-versionLoggerListener.arg=Argument de la ligne de commande : {0}
-versionLoggerListener.catalina.base=CATALINA_BASE : {0}
-versionLoggerListener.catalina.home=CATALINA_HOME : {0}
-versionLoggerListener.env=Variable d’environnement : {0} = {1}
-versionLoggerListener.java.home=Java Home : {0}
-versionLoggerListener.os.arch=Architecture : {0}
-versionLoggerListener.os.name=Nom de l''OS : {0}
-versionLoggerListener.os.version=Version OS : {0}
-versionLoggerListener.prop=Propriété système : {0} = {1}
-versionLoggerListener.serverInfo.server.built=Serveur compilé : {0}
-versionLoggerListener.serverInfo.server.number=Version du serveur : {0}
-versionLoggerListener.serverInfo.server.version=Nom version serveur : {0}
-versionLoggerListener.vm.vendor=Fournisseur de la JVM : {0}
-versionLoggerListener.vm.version=Version JVM : {0}
+versionLoggerListener.arg =Argument de la ligne de commande : {0}
+versionLoggerListener.catalina.base =CATALINA_BASE : {0}
+versionLoggerListener.catalina.home =CATALINA_HOME : {0}
+versionLoggerListener.env =Variable d''environnement : {0} = {1}
+versionLoggerListener.java.home =Java Home : {0}
+versionLoggerListener.os.arch =Architecture : {0}
+versionLoggerListener.os.name =Nom de l''OS : {0}
+versionLoggerListener.os.version =Version OS : {0}
+versionLoggerListener.prop =Propriété système : {0} = {1}
+versionLoggerListener.serverInfo.server.built =Serveur compilé : {0}
+versionLoggerListener.serverInfo.server.number =Version du serveur : {0}
+versionLoggerListener.serverInfo.server.version=Nom version serveur : {0}
+versionLoggerListener.vm.vendor =Fournisseur de la JVM : {0}
+versionLoggerListener.vm.version =Version JVM : {0}
webAnnotationSet.invalidInjection=L'annotation d'injection de ressource de la méthode est invalide
diff --git a/java/org/apache/catalina/startup/LocalStrings_ko.properties b/java/org/apache/catalina/startup/LocalStrings_ko.properties
index 11526af..547ec5b 100644
--- a/java/org/apache/catalina/startup/LocalStrings_ko.properties
+++ b/java/org/apache/catalina/startup/LocalStrings_ko.properties
@@ -165,19 +165,19 @@ userConfig.error=사용자 [{0}]을(를) 위한 웹 애플리케이션을 배치
userConfig.start=UserConfig: START 처리 중
userConfig.stop=UserConfig: STOP 처리 중
-versionLoggerListener.arg=명령 행 아규먼트: {0}
-versionLoggerListener.catalina.base=CATALINA_BASE: {0}
-versionLoggerListener.catalina.home=CATALINA_HOME: {0}
-versionLoggerListener.env=환경 변수: {0} = {1}
-versionLoggerListener.java.home=자바 홈: {0}
-versionLoggerListener.os.arch=아키텍처: {0}
-versionLoggerListener.os.name=운영체제 이름: {0}
-versionLoggerListener.os.version=운영체제 버전: {0}
-versionLoggerListener.prop=시스템 프로퍼티: {0} = {1}
-versionLoggerListener.serverInfo.server.built=Server 빌드 시각: {0}
-versionLoggerListener.serverInfo.server.number=Server 버전 번호: {0}
-versionLoggerListener.serverInfo.server.version=서버 버전 이름: {0}
-versionLoggerListener.vm.vendor=JVM 벤더: {0}
-versionLoggerListener.vm.version=JVM 버전: {0}
+versionLoggerListener.arg =명령 행 아규먼트: {0}
+versionLoggerListener.catalina.base =CATALINA_BASE: {0}
+versionLoggerListener.catalina.home =CATALINA_HOME: {0}
+versionLoggerListener.env =환경 변수: {0} = {1}
+versionLoggerListener.java.home =자바 홈: {0}
+versionLoggerListener.os.arch =아키텍처: {0}
+versionLoggerListener.os.name =운영체제 이름: {0}
+versionLoggerListener.os.version =운영체제 버전: {0}
+versionLoggerListener.prop =시스템 프로퍼티: {0} = {1}
+versionLoggerListener.serverInfo.server.built =Server 빌드 시각: {0}
+versionLoggerListener.serverInfo.server.number =Server 버전 번호: {0}
+versionLoggerListener.serverInfo.server.version=서버 버전 이름: {0}
+versionLoggerListener.vm.vendor =JVM 벤더: {0}
+versionLoggerListener.vm.version =JVM 버전: {0}
webAnnotationSet.invalidInjection=유효하지 않은 메소드 리소스 injection annotation입니다.
diff --git a/java/org/apache/catalina/startup/LocalStrings_ru.properties b/java/org/apache/catalina/startup/LocalStrings_ru.properties
index 7a537a8..2204c43 100644
--- a/java/org/apache/catalina/startup/LocalStrings_ru.properties
+++ b/java/org/apache/catalina/startup/LocalStrings_ru.properties
@@ -15,8 +15,15 @@
catalina.serverStartFail=Томкат не смог запуститься из-за того что обязательный компонент не смог запуститься
+contextConfig.applicationUrl=Не возможно определить URL для web.xml приложения
contextConfig.defaultPosition=Произошло в строке [{0}] столбце [{1}]
hostConfig.deployDir=Установка веб приложения в папку [{0}]
userConfig.database=Ошибка при загрузке базы данных пользователей
+
+versionLoggerListener.catalina.base=CATALINA_BASE: {0}
+versionLoggerListener.catalina.home=CATALINA_HOME: {0}
+versionLoggerListener.os.arch=Архитектура: {0}
+versionLoggerListener.os.version=Версия ОС: {0}
+versionLoggerListener.vm.version=Версия JVM: {0}
diff --git a/java/org/apache/catalina/startup/LocalStrings_zh_CN.properties b/java/org/apache/catalina/startup/LocalStrings_zh_CN.properties
index a1c4231..41c639a 100644
--- a/java/org/apache/catalina/startup/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/startup/LocalStrings_zh_CN.properties
@@ -161,17 +161,17 @@ userConfig.error=为用户 [{0}]部署web应用发生错误
userConfig.start=用户配置:处理开始
userConfig.stop=UserConfig:处理停止
-versionLoggerListener.arg=命令行参数:{0}
+versionLoggerListener.arg=命令行参数: {0}
versionLoggerListener.catalina.base=CATALINA_BASE: {0}
versionLoggerListener.catalina.home=CATALINA_HOME: {0}
-versionLoggerListener.env=环境变量:[{0}] = [{1}]
+versionLoggerListener.env=环境变量: {0} = {1}
versionLoggerListener.java.home=Java 环境变量: {0}
versionLoggerListener.os.arch=架构: {0}
versionLoggerListener.os.name=操作系统名称: {0}
versionLoggerListener.os.version=OS.版本: {0}
-versionLoggerListener.prop=系统属性: {0} = {1}
+versionLoggerListener.prop=系统属性: {0} = {1}
versionLoggerListener.serverInfo.server.built=服务器构建: {0}
-versionLoggerListener.serverInfo.server.number=服务器版本号(: {0}
+versionLoggerListener.serverInfo.server.number=服务器版本号: {0}
versionLoggerListener.serverInfo.server.version=Server.服务器版本: {0}
versionLoggerListener.vm.vendor=JVM.供应商: {0}
versionLoggerListener.vm.version=Java虚拟机版本: {0}
diff --git a/test/org/apache/tomcat/util/res/TestStringManager.java b/test/org/apache/tomcat/util/res/TestStringManager.java
index 97959ab..05fa178 100644
--- a/test/org/apache/tomcat/util/res/TestStringManager.java
+++ b/test/org/apache/tomcat/util/res/TestStringManager.java
@@ -16,7 +16,11 @@
*/
package org.apache.tomcat.util.res;
+import java.io.InputStream;
+import java.util.HashSet;
import java.util.Locale;
+import java.util.Properties;
+import java.util.Set;
import org.junit.Assert;
import org.junit.Test;
@@ -26,6 +30,18 @@ public class TestStringManager {
private static final String PACKAGE_NAME = "org.apache.tomcat.util";
private static final StringManager sm = StringManager.getManager(PACKAGE_NAME);
+ private static final Locale[] ALL_LOCALES = new Locale[] {
+ Locale.ENGLISH, new Locale("cs"), Locale.GERMAN, new Locale("es"), Locale.FRENCH, Locale.JAPANESE,
+ Locale.KOREAN, new Locale("pr_BR"), new Locale("ru"), Locale.SIMPLIFIED_CHINESE };
+ private static final Set<Locale> CJK_LOCALES;
+
+ static {
+ CJK_LOCALES = new HashSet<>();
+ CJK_LOCALES.add(Locale.SIMPLIFIED_CHINESE);
+ CJK_LOCALES.add(Locale.JAPANESE);
+ CJK_LOCALES.add(Locale.KOREAN);
+ }
+
@Test
public void testNullKey() {
boolean iaeThrown = false;
@@ -67,4 +83,68 @@ public class TestStringManager {
Assert.assertNull(sm.getLocale());
}
+
+ @Test
+ public void testVersionLoggerListenerAlignment() throws Exception{
+ // Get full list of properties from English
+ InputStream is = TestStringManager.class.getClassLoader().getResourceAsStream("org/apache/catalina/startup/LocalStrings.properties");
+ Properties props = new Properties();
+ props.load(is);
+ Set<String> versionLoggerListenerKeys = new HashSet<>();
+ for (Object key : props.keySet()) {
+ if (key instanceof String) {
+ if (((String) key).startsWith("versionLoggerListener.")) {
+ versionLoggerListenerKeys.add((String) key);
+ }
+ }
+ }
+
+ for (Locale locale : ALL_LOCALES) {
+ testVersionLoggerListenerAlignment(versionLoggerListenerKeys, locale);
+ }
+ }
+
+
+ private void testVersionLoggerListenerAlignment(Set<String> keys, Locale locale) {
+ System.out.println("\n" + locale.getDisplayName());
+ StringManager sm = StringManager.getManager("org.apache.catalina.startup", locale);
+ int standardLength = -1;
+ for (String key : keys) {
+ String fullLine = sm.getString(key, "XXX");
+ // Provides a visual check but be aware CJK characters may be
+ // displayed using full width (1 CJK character uses the space of two
+ // ASCII characters) as assumed by this test or may use a narrower
+ // representation.
+ System.out.println(fullLine);
+ int insertIndex = fullLine.indexOf("XXX");
+ String preInsert = fullLine.substring(0, insertIndex);
+ int length = getFixedWidth(preInsert, locale);
+ if (standardLength == -1) {
+ standardLength = length;
+ } else {
+ Assert.assertEquals(locale.getDisplayName() + " - " + key, standardLength, length);
+ }
+ }
+ }
+
+
+ private int getFixedWidth(String s, Locale l) {
+ if (CJK_LOCALES.contains(l)) {
+ // This isn't perfect but it is good enough for this test.
+ // The test assumes CJK characters are all displayed double width
+ // Ubuntu uses double width characters by default.
+ // Eclipse uses 1.5 width characters by default.
+ int len = 0;
+ for (char c : s.toCharArray()) {
+ if (c < 128) {
+ len ++;
+ } else {
+ len += 2;
+ }
+ }
+ return len;
+ } else {
+ return s.length();
+ }
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org