From 1aa503e2e54f1c88cbfa3a363a82788b622dadb7 Mon Sep 17 00:00:00 2001 From: WangXin Date: Wed, 25 Oct 2017 23:10:51 +0800 Subject: [PATCH 1/5] fix dubbo admin console dispaly error in https://github.com/alibaba/dubbo/issues/714 with http://blog.csdn.net/u012063409/article/details/59110559 --- .../governance/screen/providers/index.vm | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/dubbo-admin/src/main/webapp/WEB-INF/templates/governance/screen/providers/index.vm b/dubbo-admin/src/main/webapp/WEB-INF/templates/governance/screen/providers/index.vm index 746da4346757..db5ac9130878 100644 --- a/dubbo-admin/src/main/webapp/WEB-INF/templates/governance/screen/providers/index.vm +++ b/dubbo-admin/src/main/webapp/WEB-INF/templates/governance/screen/providers/index.vm @@ -89,14 +89,15 @@ #set($errorLevel = "ok") #set($errorMessage = "") - #if ($providerApplication == "") - #set($providerApplication = $provider.application) - #end - - #if($providerApplication != $provider.application) - #if ($errorLevel != "error") #set($errorLevel = "warn") #end - #set($errorMessage ="$errorMessage
$i18n.get('warn'): $i18n.get( - 'CheckProviderApplicationDifferent', $providerApplication, $provider.application)") + #foreach($patchProvider in $providers) + #if ($patchProvider.application != $provider.application) + #if ($provider.service == $patchProvider.service) + #if ($errorLevel != "error") #set($errorLevel = "warn") #end + #set($errorMessage ="$errorMessage
$i18n.get('warn'): $i18n.get( + 'CheckProviderApplicationDifferent', $patchProvider.application, $provider.application)") + #break + #end + #end #end #if($provider.address.startsWith("127.") || $provider.address.startsWith( From 586177a512b2d5dab114ac62e2c46fb1bae37f45 Mon Sep 17 00:00:00 2001 From: WangXin Date: Sun, 29 Oct 2017 06:06:28 +0800 Subject: [PATCH 2/5] optimize the provider page performance --- .../governance/module/screen/Providers.java | 26 +++++++++++++++++++ .../governance/screen/providers/index.vm | 23 ++++++++++------ 2 files changed, 41 insertions(+), 8 deletions(-) diff --git a/dubbo-admin/src/main/java/com/alibaba/dubbo/governance/web/governance/module/screen/Providers.java b/dubbo-admin/src/main/java/com/alibaba/dubbo/governance/web/governance/module/screen/Providers.java index e368ecc2197c..e1d70b0a3640 100644 --- a/dubbo-admin/src/main/java/com/alibaba/dubbo/governance/web/governance/module/screen/Providers.java +++ b/dubbo-admin/src/main/java/com/alibaba/dubbo/governance/web/governance/module/screen/Providers.java @@ -23,8 +23,10 @@ import javax.servlet.http.HttpServletResponse; import java.util.ArrayList; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Set; /** *

Providers.

@@ -107,11 +109,35 @@ else if (application != null && application.length() > 0) { } context.put("providers", providers); + context.put("serviceAppMap", getServiceAppMap(providers)); // 设置搜索结果到cookie中 setSearchHistroy(context, value); } + /** + * @author WangXin + * 计算各个服务对应的,方便页面对"重复"的提示 + * @param providers app services + */ + private Map> getServiceAppMap(List providers) { + Map> serviceAppMap = new HashMap>(); + if (providers != null || providers.size() >= 0) { + for (Provider provider : providers) { + Set appSet; + String service = provider.getService(); + if (serviceAppMap.get(service) == null) { + appSet = new HashSet(); + } else { + appSet = serviceAppMap.get(service); + } + appSet.add(provider.getApplication()); + serviceAppMap.put(service, appSet); + } + } + return serviceAppMap; + } + /** * 设置search记录到cookie中,操作步骤: * 检查加入的记录是否已经存在cookie中,如果存在,则更新列表次序;如果不存在,则插入到最前面 diff --git a/dubbo-admin/src/main/webapp/WEB-INF/templates/governance/screen/providers/index.vm b/dubbo-admin/src/main/webapp/WEB-INF/templates/governance/screen/providers/index.vm index db5ac9130878..03cdce26a3f9 100644 --- a/dubbo-admin/src/main/webapp/WEB-INF/templates/governance/screen/providers/index.vm +++ b/dubbo-admin/src/main/webapp/WEB-INF/templates/governance/screen/providers/index.vm @@ -88,16 +88,23 @@ #set($errorLevel = "ok") #set($errorMessage = "") - - #foreach($patchProvider in $providers) - #if ($patchProvider.application != $provider.application) - #if ($provider.service == $patchProvider.service) - #if ($errorLevel != "error") #set($errorLevel = "warn") #end - #set($errorMessage ="$errorMessage
$i18n.get('warn'): $i18n.get( - 'CheckProviderApplicationDifferent', $patchProvider.application, $provider.application)") - #break + #set($appList = $!serviceAppMap.get($provider.service)) + #if($appList.size()>1) + #set($appOne = "") + #set($appTwo = "") + #set($index = 0) + #foreach($app in $appList) + #set($index = $index+1) + #if($index == 1) + #set($appOne = $app) + #end + #if($index == 2) + #set($appTwo = $app) #end #end + #if ($errorLevel != "error") #set($errorLevel = "warn") #end + #set($errorMessage ="$errorMessage
$i18n.get('warn'): $i18n.get( + 'CheckProviderApplicationDifferent', $appOne, $appTwo)") #end #if($provider.address.startsWith("127.") || $provider.address.startsWith( From 6609ca8d94de3933ab916070ef454a990d3dc3f4 Mon Sep 17 00:00:00 2001 From: WangXin Date: Fri, 3 Nov 2017 13:39:31 +0800 Subject: [PATCH 3/5] =?UTF-8?q?#714=20=E9=87=8D=E5=A4=8D=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E6=8F=90=E7=A4=BA=E6=96=87=E6=A1=88=E4=BF=AE=E6=94=B9=E3=80=82?= =?UTF-8?q?=E5=9B=A0=E4=B8=BA=E4=B8=80=E4=B8=AA=E6=9C=8D=E5=8A=A1=E5=8F=AF?= =?UTF-8?q?=E8=83=BD=E5=AF=B9=E5=BA=94=E5=A4=9A=E4=B8=AA=E5=BA=94=E7=94=A8?= =?UTF-8?q?=EF=BC=8C=E6=89=80=E4=BB=A5=E5=8E=9F=E6=9D=A5=E7=9A=84=E5=B1=95?= =?UTF-8?q?=E7=A4=BA=E6=96=B9=E5=BC=8F=E6=9C=89=E8=AF=AF=EF=BC=9A=E5=8F=AA?= =?UTF-8?q?=E5=B1=95=E7=A4=BA=E4=B8=A4=E4=B8=AA=E5=BA=94=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/webapp/WEB-INF/i18n/message_zh.properties | 2 +- .../webapp/WEB-INF/i18n/message_zh_TW.properties | 2 +- .../templates/governance/screen/providers/index.vm | 14 +------------- 3 files changed, 3 insertions(+), 15 deletions(-) diff --git a/dubbo-admin/src/main/webapp/WEB-INF/i18n/message_zh.properties b/dubbo-admin/src/main/webapp/WEB-INF/i18n/message_zh.properties index d2dcb1ac45bb..15d9241db541 100644 --- a/dubbo-admin/src/main/webapp/WEB-INF/i18n/message_zh.properties +++ b/dubbo-admin/src/main/webapp/WEB-INF/i18n/message_zh.properties @@ -456,7 +456,7 @@ confirm.batch.tostatic=\u786e\u5b9a\u8f6c\u4e3a\u9759\u6001\u6240\u9009\u9879? confirm.batch.todynamic=\u786e\u5b9a\u8f6c\u4e3a\u52a8\u6001\u6240\u9009\u9879? current.user=\u5f53\u524d\u7528\u6237 CheckProviderLocalAddress={0}\u4E0D\u662F\u6709\u6548\u7684\u8FDC\u7A0B\u670D\u52A1\u5730\u5740\uFF0C\u8BF7\u68C0\u67E5\u63D0\u4F9B\u65B9/etc/hosts\u6620\u5C04\u662F\u5426\u6B63\u786E\u3002 -CheckProviderApplicationDifferent=\u591a\u4e2a\u4e0d\u540c\u5e94\u7528\u6ce8\u518c\u4e86\u76f8\u540c\u670d\u52a1\uFF0C\u8BF7\u68C0\u67E5{0}\u548C{1}\u4E2D\u662F\u5426\u6709\u8BEF\u66B4\u9732\u3002 +CheckProviderApplicationDifferent=\u591a\u4e2a\u4e0d\u540c\u5e94\u7528\u6ce8\u518c\u4e86\u76f8\u540c\u670d\u52a1\uff0c\u8bf7\u68c0\u67e5{0}\u4e2d\u662f\u5426\u6709\u8bef\u66b4\u9732\u3002 CheckProviderAddressMismatch=\u670d\u52a1URL\u4e0a\u7684IP\u4e0e\u8fde\u63a5\u6ce8\u518c\u4e2d\u5fc3\u7684IP\u4e0d\u76f8\u540c CheckConnectionDisconnected=\u8be5\u8fde\u63a5\u5df2\u65ad\u5f00\uff0c\u6570\u636e\u5e93\u810f\u6570\u636e\uff0c\u8bf7\u70b9\u51fb\u201c\u91cd\u8fde\u201d CheckConnectionExpired=\u8be5\u8fde\u63a5\u6240\u5728\u6ce8\u518c\u4e2d\u5fc3\u5df2\u4e0d\u5b58\u5728\uff08\u6570\u636e\u4f1a\u81ea\u52a8\u5b9a\u671f\u6e05\u7406\uff09 diff --git a/dubbo-admin/src/main/webapp/WEB-INF/i18n/message_zh_TW.properties b/dubbo-admin/src/main/webapp/WEB-INF/i18n/message_zh_TW.properties index 3c1b7c0b4bcb..8e4a18bc4925 100644 --- a/dubbo-admin/src/main/webapp/WEB-INF/i18n/message_zh_TW.properties +++ b/dubbo-admin/src/main/webapp/WEB-INF/i18n/message_zh_TW.properties @@ -424,7 +424,7 @@ confirm.batch.tostatic=\u78ba\u5b9a\u8f49\u70ba\u975c\u614b\u6240\u9078\u9805? confirm.batch.todynamic=\u78ba\u5b9a\u8f49\u70ba\u52d5\u614b\u6240\u9078\u9805? current.user=\u7576\u524d\u7528\u6236 CheckProviderAddressMismatch=\u670d\u52d9URL\u4e0a\u7684IP\u8207\u9023\u63a5\u8a3b\u518a\u4e2d\u5fc3\u7684IP\u4e0d\u76f8\u540c -CheckProviderApplicationDifferent=\u591a\u500b\u4e0d\u540c\u61c9\u7528\u8a3b\u518a\u4e86\u76f8\u540c\u670d\u52d9 +CheckProviderApplicationDifferent=\u591a\u500b\u4e0d\u540c\u61c9\u7528\u8a3b\u518a\u4e86\u76f8\u540c\u670d\u52d9\uff0c\u8acb\u6aa2\u67e5{0}\u4e2d\u662f\u5426\u6709\u8aa4\u66b4\u9732\u3002 CheckConnectionDisconnected=\u8a72\u9023\u63a5\u5df2\u65b7\u958b\uff0c\u8cc7\u6599\u5eab\u9ad2\u8cc7\u6599\uff0c\u8acb\u9ede\u64ca\u201c\u91cd\u9023\u201d CheckConnectionExpired=\u8a72\u9023\u63a5\u6240\u5728\u8a3b\u518a\u4e2d\u5fc3\u5df2\u4e0d\u5b58\u5728\uff08\u8cc7\u6599\u6703\u81ea\u52d5\u5b9a\u671f\u6e05\u7406\uff09 CheckDatabaseMiss=\u8cc7\u6599\u5eab\u8cc7\u6599\u610f\u5916\u4e1f\u5931\u6b64\u8cc7\u6599\uff0c\u8acb\u9ede\u64ca\u201c\u6062\u5fa9\u201d diff --git a/dubbo-admin/src/main/webapp/WEB-INF/templates/governance/screen/providers/index.vm b/dubbo-admin/src/main/webapp/WEB-INF/templates/governance/screen/providers/index.vm index 03cdce26a3f9..099dcba92663 100644 --- a/dubbo-admin/src/main/webapp/WEB-INF/templates/governance/screen/providers/index.vm +++ b/dubbo-admin/src/main/webapp/WEB-INF/templates/governance/screen/providers/index.vm @@ -90,21 +90,9 @@ #set($errorMessage = "") #set($appList = $!serviceAppMap.get($provider.service)) #if($appList.size()>1) - #set($appOne = "") - #set($appTwo = "") - #set($index = 0) - #foreach($app in $appList) - #set($index = $index+1) - #if($index == 1) - #set($appOne = $app) - #end - #if($index == 2) - #set($appTwo = $app) - #end - #end #if ($errorLevel != "error") #set($errorLevel = "warn") #end #set($errorMessage ="$errorMessage
$i18n.get('warn'): $i18n.get( - 'CheckProviderApplicationDifferent', $appOne, $appTwo)") + 'CheckProviderApplicationDifferent', $appList)") #end #if($provider.address.startsWith("127.") || $provider.address.startsWith( From 323ff8f597453e843b10b3f44b77bd1fd903a0cd Mon Sep 17 00:00:00 2001 From: WangXin Date: Fri, 3 Nov 2017 13:44:20 +0800 Subject: [PATCH 4/5] =?UTF-8?q?#714=20=E4=BF=AE=E6=94=B9=E6=96=B9=E6=B3=95?= =?UTF-8?q?=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../governance/web/governance/module/screen/Providers.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dubbo-admin/src/main/java/com/alibaba/dubbo/governance/web/governance/module/screen/Providers.java b/dubbo-admin/src/main/java/com/alibaba/dubbo/governance/web/governance/module/screen/Providers.java index e1d70b0a3640..6a6f72bfe31b 100644 --- a/dubbo-admin/src/main/java/com/alibaba/dubbo/governance/web/governance/module/screen/Providers.java +++ b/dubbo-admin/src/main/java/com/alibaba/dubbo/governance/web/governance/module/screen/Providers.java @@ -117,7 +117,7 @@ else if (application != null && application.length() > 0) { /** * @author WangXin - * 计算各个服务对应的,方便页面对"重复"的提示 + * 计算各个服务对应的应用列表,方便页面对"重复"的提示 * @param providers app services */ private Map> getServiceAppMap(List providers) { From 7592e64ed2d10eee7454be4bfeed9f70e20be866 Mon Sep 17 00:00:00 2001 From: WangXin Date: Fri, 17 Nov 2017 23:42:11 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../governance/web/governance/module/screen/Providers.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dubbo-admin/src/main/java/com/alibaba/dubbo/governance/web/governance/module/screen/Providers.java b/dubbo-admin/src/main/java/com/alibaba/dubbo/governance/web/governance/module/screen/Providers.java index 6a6f72bfe31b..1f8df3f69492 100644 --- a/dubbo-admin/src/main/java/com/alibaba/dubbo/governance/web/governance/module/screen/Providers.java +++ b/dubbo-admin/src/main/java/com/alibaba/dubbo/governance/web/governance/module/screen/Providers.java @@ -122,7 +122,7 @@ else if (application != null && application.length() > 0) { */ private Map> getServiceAppMap(List providers) { Map> serviceAppMap = new HashMap>(); - if (providers != null || providers.size() >= 0) { + if (providers != null && providers.size() >= 0) { for (Provider provider : providers) { Set appSet; String service = provider.getService();