From 64b2824924068f7dab9e29b9bd58538230664165 Mon Sep 17 00:00:00 2001 From: huihuiw Date: Thu, 16 Nov 2023 08:50:54 +0800 Subject: [PATCH 1/4] fix bug 2750: filter and tag can support customized vipconfig name --- .../i18n/filters/VIPComponentFilter.java | 11 +++++------ .../i18n/filters/VIPPatternFilter.java | 11 +++++------ .../i18n/fmt/common/MessageSupport.java | 18 ++++++++++-------- 3 files changed, 20 insertions(+), 20 deletions(-) diff --git a/src/main/java/com/vmware/vipclient/i18n/filters/VIPComponentFilter.java b/src/main/java/com/vmware/vipclient/i18n/filters/VIPComponentFilter.java index 515e1292e..d0cd6635c 100644 --- a/src/main/java/com/vmware/vipclient/i18n/filters/VIPComponentFilter.java +++ b/src/main/java/com/vmware/vipclient/i18n/filters/VIPComponentFilter.java @@ -37,6 +37,7 @@ public class VIPComponentFilter implements Filter { public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { + logger.info("Vip Server: " + gc.getVipServer() +gc.getProductName() +gc.getVersion()); try { String component = FilterUtils.getParamFromURI(request, "component"); logger.debug("component: " + component); @@ -75,16 +76,14 @@ public void destroy() { private VIPCfg gc = VIPCfg.getInstance(); public void init(FilterConfig filterConfig) throws ServletException { - if (gc.getVipService() == null) { + I18nFactory i18n = I18nFactory.getInstance(); + if (i18n == null){ try { - gc.initialize("vipconfig"); + throw new VIPClientInitException("Haven't init I18nFactory, please init VIPCfg with your vip config first, then initialize I18nFactory with VIPCfg!"); } catch (VIPClientInitException e) { - logger.error(e.getMessage()); + e.printStackTrace(); } - gc.initializeVIPService(); } - gc.createTranslationCache(MessageCache.class); - I18nFactory i18n = I18nFactory.getInstance(gc); translation = (TranslationMessage) i18n.getMessageInstance(TranslationMessage.class); } } diff --git a/src/main/java/com/vmware/vipclient/i18n/filters/VIPPatternFilter.java b/src/main/java/com/vmware/vipclient/i18n/filters/VIPPatternFilter.java index b95266368..eefa98ca6 100644 --- a/src/main/java/com/vmware/vipclient/i18n/filters/VIPPatternFilter.java +++ b/src/main/java/com/vmware/vipclient/i18n/filters/VIPPatternFilter.java @@ -42,6 +42,7 @@ public class VIPPatternFilter implements Filter { @Override public void doFilter(final ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { + logger.info("Vip Server: " + gc.getVipServer() +gc.getProductName() +gc.getVersion()+" "+gc.getMsgOriginsQueue().size()); try { String locale = FilterUtils.getParamFromQuery(request, "locale"); logger.debug("locale: " + locale); @@ -70,16 +71,14 @@ public void destroy() { @Override public void init(FilterConfig filterConfig) throws ServletException { - if (gc.getVipService() == null) { + I18nFactory i18n = I18nFactory.getInstance(); + if (i18n == null){ try { - gc.initialize("vipconfig"); + throw new VIPClientInitException("Haven't init I18nFactory, please init VIPCfg with your vip config first, then initialize I18nFactory with VIPCfg!"); } catch (VIPClientInitException e) { - logger.error(e.getMessage()); + e.printStackTrace(); } - gc.initializeVIPService(); } - gc.createFormattingCache(FormattingCache.class); - I18nFactory i18n = I18nFactory.getInstance(gc); patternMessage = (PatternMessage) i18n.getMessageInstance(PatternMessage.class); } } diff --git a/src/main/java/com/vmware/vipclient/i18n/fmt/common/MessageSupport.java b/src/main/java/com/vmware/vipclient/i18n/fmt/common/MessageSupport.java index ae54b4e27..3ce010d8d 100644 --- a/src/main/java/com/vmware/vipclient/i18n/fmt/common/MessageSupport.java +++ b/src/main/java/com/vmware/vipclient/i18n/fmt/common/MessageSupport.java @@ -16,6 +16,8 @@ import javax.servlet.jsp.tagext.Tag; import org.apache.taglibs.standard.tag.common.core.Util; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import com.vmware.vipclient.i18n.I18nFactory; import com.vmware.vipclient.i18n.VIPCfg; @@ -25,6 +27,7 @@ import com.vmware.vipclient.i18n.util.LocaleUtility; public class MessageSupport extends BodyTagSupport { + private Logger logger = LoggerFactory.getLogger(MessageSupport.class); public static final Locale defaultLocale = new Locale("en", "US"); private PageContext pageContext; @@ -46,15 +49,14 @@ private void init() { this.scope = 1; this.keyAttrValue = null; this.keySpecified = false; - VIPCfg gc = VIPCfg.getInstance(); - try { - gc.initialize("vipconfig"); - } catch (VIPClientInitException e) { - + I18nFactory i18n = I18nFactory.getInstance(); + if (i18n == null){ + try { + throw new VIPClientInitException("Haven't init I18nFactory, please init VIPCfg with your vip config first, then initialize I18nFactory with VIPCfg!"); + } catch (VIPClientInitException e) { + e.printStackTrace(); + } } - gc.initializeVIPService(); - gc.createTranslationCache(MessageCache.class); - I18nFactory i18n = I18nFactory.getInstance(gc); translation = (TranslationMessage) i18n.getMessageInstance(TranslationMessage.class); } From f4284a708c590c5df5361bb17319448652023c63 Mon Sep 17 00:00:00 2001 From: huihuiw Date: Mon, 4 Mar 2024 17:43:14 +0800 Subject: [PATCH 2/4] optimize code --- .../i18n/filters/VIPComponentFilter.java | 28 +++++++++++-------- .../i18n/filters/VIPPatternFilter.java | 26 ++++++++++------- .../i18n/fmt/common/MessageSupport.java | 22 ++++++--------- .../vip/i18n/VIPComponentFilterTest.java | 21 ++++++++++++-- .../vmware/vip/i18n/VIPPatternFilterTest.java | 17 +++++++++-- 5 files changed, 74 insertions(+), 40 deletions(-) diff --git a/src/main/java/com/vmware/vipclient/i18n/filters/VIPComponentFilter.java b/src/main/java/com/vmware/vipclient/i18n/filters/VIPComponentFilter.java index d0cd6635c..4bc46b9cc 100644 --- a/src/main/java/com/vmware/vipclient/i18n/filters/VIPComponentFilter.java +++ b/src/main/java/com/vmware/vipclient/i18n/filters/VIPComponentFilter.java @@ -23,9 +23,7 @@ import com.vmware.vipclient.i18n.I18nFactory; import com.vmware.vipclient.i18n.VIPCfg; -import com.vmware.vipclient.i18n.base.cache.MessageCache; import com.vmware.vipclient.i18n.base.instances.TranslationMessage; -import com.vmware.vipclient.i18n.exceptions.VIPClientInitException; import com.vmware.vipclient.i18n.util.LocaleUtility; /** @@ -37,14 +35,13 @@ public class VIPComponentFilter implements Filter { public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { - logger.info("Vip Server: " + gc.getVipServer() +gc.getProductName() +gc.getVersion()); try { String component = FilterUtils.getParamFromURI(request, "component"); logger.debug("component: " + component); String locale = FilterUtils.getParamFromQuery(request, "locale"); logger.debug("locale: " + locale); String messages = "{}"; - if (!StringUtil.isEmpty(component) && !StringUtil.isEmpty(locale) && !LocaleUtility.isDefaultLocale(locale) && translation != null) { + if (!StringUtil.isEmpty(component) && !StringUtil.isEmpty(locale) && !LocaleUtility.isDefaultLocale(locale)) { Map ctmap = translation.getMessages(LocaleUtility.fmtToMappedLocale(locale), component); if (ctmap != null) { @@ -75,15 +72,24 @@ public void destroy() { private TranslationMessage translation; private VIPCfg gc = VIPCfg.getInstance(); + /** + * Here will create TranslationMessage instance, but create it requires I18nFactory instance created first, and creation of I18nFactory + * requires VIPCfg instance. Hence you must create VIPCfg instance and I18nFactory instance before this filter initialize, so recommend + * you create them at your service starts, that is in listener class that implements ServletContextListener, or will throw ServletException. + * + * Furthermore when initialize VIPCfg you had better rename your config file to avoid config loading error. You can write it in web.xml + * as to avoid hardcoding the config file in code and make the whole application share the same config. + * + * @param filterConfig + * @throws ServletException + */ public void init(FilterConfig filterConfig) throws ServletException { I18nFactory i18n = I18nFactory.getInstance(); - if (i18n == null){ - try { - throw new VIPClientInitException("Haven't init I18nFactory, please init VIPCfg with your vip config first, then initialize I18nFactory with VIPCfg!"); - } catch (VIPClientInitException e) { - e.printStackTrace(); - } + try { + translation = (TranslationMessage) i18n.getMessageInstance(TranslationMessage.class); + } catch(NullPointerException e){ + throw new ServletException("Haven't init I18nFactory, please init VIPCfg with your config first when your service starts" + + "(for example init VIPCfg in listener), then initialize I18nFactory with VIPCfg!", e); } - translation = (TranslationMessage) i18n.getMessageInstance(TranslationMessage.class); } } diff --git a/src/main/java/com/vmware/vipclient/i18n/filters/VIPPatternFilter.java b/src/main/java/com/vmware/vipclient/i18n/filters/VIPPatternFilter.java index eefa98ca6..5708bd1c0 100644 --- a/src/main/java/com/vmware/vipclient/i18n/filters/VIPPatternFilter.java +++ b/src/main/java/com/vmware/vipclient/i18n/filters/VIPPatternFilter.java @@ -18,9 +18,7 @@ import com.vmware.vipclient.i18n.I18nFactory; import com.vmware.vipclient.i18n.VIPCfg; -import com.vmware.vipclient.i18n.base.cache.FormattingCache; import com.vmware.vipclient.i18n.base.instances.PatternMessage; -import com.vmware.vipclient.i18n.exceptions.VIPClientInitException; import com.vmware.vipclient.i18n.exceptions.VIPJavaClientException; import com.vmware.vipclient.i18n.util.StringUtil; import org.json.simple.JSONObject; @@ -42,7 +40,6 @@ public class VIPPatternFilter implements Filter { @Override public void doFilter(final ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { - logger.info("Vip Server: " + gc.getVipServer() +gc.getProductName() +gc.getVersion()+" "+gc.getMsgOriginsQueue().size()); try { String locale = FilterUtils.getParamFromQuery(request, "locale"); logger.debug("locale: " + locale); @@ -69,16 +66,25 @@ public void destroy() { // Do Nothing } + /** + * Here will create TranslationMessage instance, but create it requires I18nFactory instance created first, and creation of I18nFactory + * requires VIPCfg instance. Hence you must create VIPCfg instance and I18nFactory instance before this filter initialize, so recommend + * you create them at your service starts, that is in listener class that implements ServletContextListener, or will throw ServletException. + * + * Furthermore when initialize VIPCfg you had better rename your config file to avoid config loading error. You can write it in web.xml + * as to avoid hardcoding the config file in code and make the whole application share the same config. + * + * @param filterConfig + * @throws ServletException + */ @Override public void init(FilterConfig filterConfig) throws ServletException { I18nFactory i18n = I18nFactory.getInstance(); - if (i18n == null){ - try { - throw new VIPClientInitException("Haven't init I18nFactory, please init VIPCfg with your vip config first, then initialize I18nFactory with VIPCfg!"); - } catch (VIPClientInitException e) { - e.printStackTrace(); - } + try { + patternMessage = (PatternMessage) i18n.getMessageInstance(PatternMessage.class); + } catch(NullPointerException e){ + throw new ServletException("Haven't init I18nFactory, please init VIPCfg with your config first when your service starts" + + "(for example init VIPCfg in listener), then initialize I18nFactory with VIPCfg!", e); } - patternMessage = (PatternMessage) i18n.getMessageInstance(PatternMessage.class); } } diff --git a/src/main/java/com/vmware/vipclient/i18n/fmt/common/MessageSupport.java b/src/main/java/com/vmware/vipclient/i18n/fmt/common/MessageSupport.java index 3ce010d8d..b24759365 100644 --- a/src/main/java/com/vmware/vipclient/i18n/fmt/common/MessageSupport.java +++ b/src/main/java/com/vmware/vipclient/i18n/fmt/common/MessageSupport.java @@ -20,10 +20,7 @@ import org.slf4j.LoggerFactory; import com.vmware.vipclient.i18n.I18nFactory; -import com.vmware.vipclient.i18n.VIPCfg; -import com.vmware.vipclient.i18n.base.cache.MessageCache; import com.vmware.vipclient.i18n.base.instances.TranslationMessage; -import com.vmware.vipclient.i18n.exceptions.VIPClientInitException; import com.vmware.vipclient.i18n.util.LocaleUtility; public class MessageSupport extends BodyTagSupport { @@ -49,15 +46,6 @@ private void init() { this.scope = 1; this.keyAttrValue = null; this.keySpecified = false; - I18nFactory i18n = I18nFactory.getInstance(); - if (i18n == null){ - try { - throw new VIPClientInitException("Haven't init I18nFactory, please init VIPCfg with your vip config first, then initialize I18nFactory with VIPCfg!"); - } catch (VIPClientInitException e) { - e.printStackTrace(); - } - } - translation = (TranslationMessage) i18n.getMessageInstance(TranslationMessage.class); } public int doStartTag() throws JspException { @@ -83,8 +71,14 @@ else if ((this.bodyContent != null) } Locale locale = LocaleUtility.getLocale(); Object[] args = this.params.isEmpty() ? null : this.params.toArray(); - String message = translation == null ? "" - : translation.getString2(component, bundle, locale, key, "TranslationCache", args); + try{ + I18nFactory i18n = I18nFactory.getInstance(); + translation = (TranslationMessage) i18n.getMessageInstance(TranslationMessage.class); + } catch(NullPointerException e){ + throw new JspTagException("Haven't init I18nFactory, please init VIPCfg with your config first when your service starts" + + "(for example init VIPCfg in listener), then initialize I18nFactory with VIPCfg!", e); + } + String message = translation.getString2(component, bundle, locale, key, "TranslationCache", args); if (this.var != null) { this.pageContext.setAttribute(this.var, message, this.scope); } else { diff --git a/src/test/java/com/vmware/vip/i18n/VIPComponentFilterTest.java b/src/test/java/com/vmware/vip/i18n/VIPComponentFilterTest.java index 6ae3be04b..87735b033 100644 --- a/src/test/java/com/vmware/vip/i18n/VIPComponentFilterTest.java +++ b/src/test/java/com/vmware/vip/i18n/VIPComponentFilterTest.java @@ -4,6 +4,10 @@ */ package com.vmware.vip.i18n; +import com.vmware.vipclient.i18n.I18nFactory; +import com.vmware.vipclient.i18n.VIPCfg; +import com.vmware.vipclient.i18n.base.cache.MessageCache; +import com.vmware.vipclient.i18n.exceptions.VIPClientInitException; import com.vmware.vipclient.i18n.filters.VIPComponentFilter; import org.junit.Assert; import org.junit.Before; @@ -19,14 +23,25 @@ public class VIPComponentFilterTest extends BaseTestClass{ VIPComponentFilter componentFilter = new VIPComponentFilter(); - //@Before + @Before public void init() throws ServletException { + VIPCfg gc = VIPCfg.getInstance(); + try { + gc.initialize("vipconfig"); + } catch (VIPClientInitException e) { + logger.error(e.getMessage()); + } + gc.createTranslationCache(MessageCache.class); + I18nFactory i18n = I18nFactory.getInstance(gc); + componentFilter.init(null); } - //@Test + @Test public void testDoFilter() throws IOException, ServletException { - String normalMsg = "var translation = {\"messages\" : {\"LeadTest\":\"[{0}] 测试警示\",\"table.host\":\"主机\",\"global_text_username\":\"用户名\",\"sample.plural.key1\":\"{0, plural, other{\\\"{1}\\\"上有#个文件。}}\"}, \"productName\" : \"JavaclientTest\", \"version\" : \"1.0.0\", \"vipServer\" : \"http://localhost:8099\", \"pseudo\" : \"false\", \"collectSource\" : \"false\"};"; + String normalMsg = "var translation = {\"messages\" : {\"LeadTest\":\"[{0}] 测试警示\",\"table.host\":\"Host 1\",\"global_text_username\":\"用户名\"," + + "\"translation_not_ready\":\"not_ready\",\"key.mt\":\"It's a testing source\",\"sample.plural.key1\":\"{0, plural, other{\\\"{1}\\\"上有#个文件。}}\"}," + + " \"productName\" : \"JavaclientTest\", \"version\" : \"1.0.0\", \"vipServer\" : \"http://localhost:8099\", \"pseudo\" : \"false\", \"collectSource\" : \"false\"};"; String errorMsg = "{\"code\":400, \"message\": \"Request parameter 'locale' is required!\"}"; String uri = "https://localhost/i18n/component/JAVA"; diff --git a/src/test/java/com/vmware/vip/i18n/VIPPatternFilterTest.java b/src/test/java/com/vmware/vip/i18n/VIPPatternFilterTest.java index be08bc85e..b81f89000 100644 --- a/src/test/java/com/vmware/vip/i18n/VIPPatternFilterTest.java +++ b/src/test/java/com/vmware/vip/i18n/VIPPatternFilterTest.java @@ -4,6 +4,10 @@ */ package com.vmware.vip.i18n; +import com.vmware.vipclient.i18n.I18nFactory; +import com.vmware.vipclient.i18n.VIPCfg; +import com.vmware.vipclient.i18n.base.cache.FormattingCache; +import com.vmware.vipclient.i18n.exceptions.VIPClientInitException; import com.vmware.vipclient.i18n.filters.VIPPatternFilter; import org.junit.Assert; import org.junit.Before; @@ -18,12 +22,21 @@ public class VIPPatternFilterTest extends BaseTestClass{ VIPPatternFilter patternFilter = new VIPPatternFilter(); - //@Before + @Before public void init() throws ServletException { + VIPCfg gc = VIPCfg.getInstance(); + try { + gc.initialize("vipconfig"); + } catch (VIPClientInitException e) { + logger.error(e.getMessage()); + } + gc.createFormattingCache(FormattingCache.class); + I18nFactory i18n = I18nFactory.getInstance(gc); + patternFilter.init(null); } - //@Test + @Test public void testDoFilter() throws IOException, ServletException { String errorMsg = "{\"code\":400, \"message\": \"Request parameter 'locale' is required!\"}"; From 3a5bdbc95b97a52489559262670fa4a4fc79406c Mon Sep 17 00:00:00 2001 From: huihuiw Date: Mon, 4 Mar 2024 19:11:06 +0800 Subject: [PATCH 3/4] revert the change of API called in VIPComponentFilter class to keep backward compatibility --- .../vmware/vipclient/i18n/filters/VIPComponentFilter.java | 2 +- .../java/com/vmware/vip/i18n/VIPComponentFilterTest.java | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/vmware/vipclient/i18n/filters/VIPComponentFilter.java b/src/main/java/com/vmware/vipclient/i18n/filters/VIPComponentFilter.java index 4bc46b9cc..66047cd46 100644 --- a/src/main/java/com/vmware/vipclient/i18n/filters/VIPComponentFilter.java +++ b/src/main/java/com/vmware/vipclient/i18n/filters/VIPComponentFilter.java @@ -42,7 +42,7 @@ public void doFilter(ServletRequest request, ServletResponse response, logger.debug("locale: " + locale); String messages = "{}"; if (!StringUtil.isEmpty(component) && !StringUtil.isEmpty(locale) && !LocaleUtility.isDefaultLocale(locale)) { - Map ctmap = translation.getMessages(LocaleUtility.fmtToMappedLocale(locale), + Map ctmap = translation.getStrings(LocaleUtility.fmtToMappedLocale(locale), component); if (ctmap != null) { messages = JSONObject.toJSONString(ctmap); diff --git a/src/test/java/com/vmware/vip/i18n/VIPComponentFilterTest.java b/src/test/java/com/vmware/vip/i18n/VIPComponentFilterTest.java index 87735b033..f7e8549f6 100644 --- a/src/test/java/com/vmware/vip/i18n/VIPComponentFilterTest.java +++ b/src/test/java/com/vmware/vip/i18n/VIPComponentFilterTest.java @@ -39,9 +39,11 @@ public void init() throws ServletException { @Test public void testDoFilter() throws IOException, ServletException { - String normalMsg = "var translation = {\"messages\" : {\"LeadTest\":\"[{0}] 测试警示\",\"table.host\":\"Host 1\",\"global_text_username\":\"用户名\"," + - "\"translation_not_ready\":\"not_ready\",\"key.mt\":\"It's a testing source\",\"sample.plural.key1\":\"{0, plural, other{\\\"{1}\\\"上有#个文件。}}\"}," + - " \"productName\" : \"JavaclientTest\", \"version\" : \"1.0.0\", \"vipServer\" : \"http://localhost:8099\", \"pseudo\" : \"false\", \"collectSource\" : \"false\"};"; + String normalMsg = "var translation = {\"messages\" : {\"LeadTest\":\"[{0}] 测试警示\",\"table.host\":\"主机\",\"global_text_username\":\"用户名\"," + + "\"sample.plural.key1\":\"{0, plural, other{\\\"{1}\\\"上有#个文件。}}\"}," + + " \"productName\" : \"JavaclientTest\", \"version\" : \"1.0.0\", \"vipServer\" : \"http://localhost:8099\", " + + "\"pseudo\" : \"false\", \"collectSource\" : \"false\"};"; + String errorMsg = "{\"code\":400, \"message\": \"Request parameter 'locale' is required!\"}"; String uri = "https://localhost/i18n/component/JAVA"; From 78e963bfb57e777ef7a962d93d36544fc7174290 Mon Sep 17 00:00:00 2001 From: huihuiw Date: Tue, 5 Mar 2024 15:41:13 +0800 Subject: [PATCH 4/4] fix CI problem - update copyright year in header --- .../vmware/vipclient/i18n/filters/VIPComponentFilter.java | 2 +- .../com/vmware/vipclient/i18n/filters/VIPPatternFilter.java | 2 +- .../com/vmware/vipclient/i18n/fmt/common/MessageSupport.java | 5 +---- .../java/com/vmware/vip/i18n/VIPComponentFilterTest.java | 2 +- src/test/java/com/vmware/vip/i18n/VIPPatternFilterTest.java | 2 +- 5 files changed, 5 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/vmware/vipclient/i18n/filters/VIPComponentFilter.java b/src/main/java/com/vmware/vipclient/i18n/filters/VIPComponentFilter.java index 66047cd46..e983fc11b 100644 --- a/src/main/java/com/vmware/vipclient/i18n/filters/VIPComponentFilter.java +++ b/src/main/java/com/vmware/vipclient/i18n/filters/VIPComponentFilter.java @@ -1,5 +1,5 @@ /* - * Copyright 2019-2023 VMware, Inc. + * Copyright 2019-2024 VMware, Inc. * SPDX-License-Identifier: EPL-2.0 */ package com.vmware.vipclient.i18n.filters; diff --git a/src/main/java/com/vmware/vipclient/i18n/filters/VIPPatternFilter.java b/src/main/java/com/vmware/vipclient/i18n/filters/VIPPatternFilter.java index 5708bd1c0..a243bf946 100644 --- a/src/main/java/com/vmware/vipclient/i18n/filters/VIPPatternFilter.java +++ b/src/main/java/com/vmware/vipclient/i18n/filters/VIPPatternFilter.java @@ -1,5 +1,5 @@ /* - * Copyright 2019-2023 VMware, Inc. + * Copyright 2019-2024 VMware, Inc. * SPDX-License-Identifier: EPL-2.0 */ package com.vmware.vipclient.i18n.filters; diff --git a/src/main/java/com/vmware/vipclient/i18n/fmt/common/MessageSupport.java b/src/main/java/com/vmware/vipclient/i18n/fmt/common/MessageSupport.java index b24759365..a8589806c 100644 --- a/src/main/java/com/vmware/vipclient/i18n/fmt/common/MessageSupport.java +++ b/src/main/java/com/vmware/vipclient/i18n/fmt/common/MessageSupport.java @@ -1,5 +1,5 @@ /* - * Copyright 2019-2022 VMware, Inc. + * Copyright 2019-2024 VMware, Inc. * SPDX-License-Identifier: EPL-2.0 */ package com.vmware.vipclient.i18n.fmt.common; @@ -16,15 +16,12 @@ import javax.servlet.jsp.tagext.Tag; import org.apache.taglibs.standard.tag.common.core.Util; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import com.vmware.vipclient.i18n.I18nFactory; import com.vmware.vipclient.i18n.base.instances.TranslationMessage; import com.vmware.vipclient.i18n.util.LocaleUtility; public class MessageSupport extends BodyTagSupport { - private Logger logger = LoggerFactory.getLogger(MessageSupport.class); public static final Locale defaultLocale = new Locale("en", "US"); private PageContext pageContext; diff --git a/src/test/java/com/vmware/vip/i18n/VIPComponentFilterTest.java b/src/test/java/com/vmware/vip/i18n/VIPComponentFilterTest.java index f7e8549f6..dddce9840 100644 --- a/src/test/java/com/vmware/vip/i18n/VIPComponentFilterTest.java +++ b/src/test/java/com/vmware/vip/i18n/VIPComponentFilterTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2019-2023 VMware, Inc. + * Copyright 2019-2024 VMware, Inc. * SPDX-License-Identifier: EPL-2.0 */ package com.vmware.vip.i18n; diff --git a/src/test/java/com/vmware/vip/i18n/VIPPatternFilterTest.java b/src/test/java/com/vmware/vip/i18n/VIPPatternFilterTest.java index b81f89000..5dea0972e 100644 --- a/src/test/java/com/vmware/vip/i18n/VIPPatternFilterTest.java +++ b/src/test/java/com/vmware/vip/i18n/VIPPatternFilterTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2019-2023 VMware, Inc. + * Copyright 2019-2024 VMware, Inc. * SPDX-License-Identifier: EPL-2.0 */ package com.vmware.vip.i18n;