From c817356ba8059f2e0563e64ef181b981bdef18de Mon Sep 17 00:00:00 2001 From: wenshao Date: Tue, 31 May 2011 07:41:38 +0000 Subject: [PATCH] jconsole plugin git-svn-id: http://code.alibabatech.com/svn/druid/trunk@223 b9813039-fb51-4c41-a8b9-e21c2acb5095 --- .../druid/jconsole/DataSourceInfo.java | 123 ++++++++++++++++++ .../alibaba/druid/jconsole/DruidPanel.java | 6 + 2 files changed, 129 insertions(+) create mode 100644 src/main/java/com/alibaba/druid/jconsole/DataSourceInfo.java diff --git a/src/main/java/com/alibaba/druid/jconsole/DataSourceInfo.java b/src/main/java/com/alibaba/druid/jconsole/DataSourceInfo.java new file mode 100644 index 0000000000..42ae81bdfd --- /dev/null +++ b/src/main/java/com/alibaba/druid/jconsole/DataSourceInfo.java @@ -0,0 +1,123 @@ +package com.alibaba.druid.jconsole; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import javax.management.openmbean.CompositeData; + +public class DataSourceInfo { + + private long id; + private String name; + private String url; + private List filters = new ArrayList(); + private Date createdTime; + + private String rawDriverClassName; + private String rawUrl; + private String rawDriverMajorVersion; + private String rawDriverMinorVersion; + private String properties; + + public DataSourceInfo(){ + + } + + public DataSourceInfo(CompositeData data){ + this.id = ((Number) data.get("ID")).longValue(); + this.name = (String) data.get("Name"); + this.url = (String) data.get("URL"); + for (String item : (String[]) data.get("FilterClasses")) { + filters.add(item); + } + this.createdTime = (Date) data.get("CreatedTime"); + + this.rawDriverClassName = (String) data.get("RawDriverClassName"); + this.rawUrl = (String) data.get("RawUrl"); + this.rawDriverMajorVersion = (String) data.get("RawDriverMajorVersion"); + this.rawDriverMinorVersion = (String) data.get("RawDriverMinorVersion"); + this.properties = (String) data.get("Properties"); + } + + public long getId() { + return id; + } + + public void setId(long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + + public List getFilters() { + return filters; + } + + public void setFilters(List filters) { + this.filters = filters; + } + + public Date getCreatedTime() { + return createdTime; + } + + public void setCreatedTime(Date createdTime) { + this.createdTime = createdTime; + } + + public String getRawDriverClassName() { + return rawDriverClassName; + } + + public void setRawDriverClassName(String rawDriverClassName) { + this.rawDriverClassName = rawDriverClassName; + } + + public String getRawUrl() { + return rawUrl; + } + + public void setRawUrl(String rawUrl) { + this.rawUrl = rawUrl; + } + + public String getRawDriverMajorVersion() { + return rawDriverMajorVersion; + } + + public void setRawDriverMajorVersion(String rawDriverMajorVersion) { + this.rawDriverMajorVersion = rawDriverMajorVersion; + } + + public String getRawDriverMinorVersion() { + return rawDriverMinorVersion; + } + + public void setRawDriverMinorVersion(String rawDriverMinorVersion) { + this.rawDriverMinorVersion = rawDriverMinorVersion; + } + + public String getProperties() { + return properties; + } + + public void setProperties(String properties) { + this.properties = properties; + } + +} diff --git a/src/main/java/com/alibaba/druid/jconsole/DruidPanel.java b/src/main/java/com/alibaba/druid/jconsole/DruidPanel.java index 66a26a2c80..2a572ab8bd 100644 --- a/src/main/java/com/alibaba/druid/jconsole/DruidPanel.java +++ b/src/main/java/com/alibaba/druid/jconsole/DruidPanel.java @@ -22,6 +22,7 @@ import javax.swing.JScrollPane; import javax.swing.JSplitPane; import javax.swing.JTree; import javax.swing.tree.DefaultMutableTreeNode; +import javax.swing.tree.TreePath; import com.alibaba.druid.pool.DruidDataSource; import com.alibaba.druid.stat.JdbcStatManager; @@ -92,6 +93,8 @@ public class DruidPanel extends JPanel { } protected Object doInBackground(JConsoleContext context) throws Exception { + //dataSourcesNode.removeAllChildren(); + MBeanServerConnection conn = context.getMBeanServerConnection(); List stats = new ArrayList(); List dataSourceInstances = new ArrayList(); @@ -156,6 +159,9 @@ public class DruidPanel extends JPanel { dataSourcesNode.add(dataSource); } + + TreePath path = new TreePath(dataSourcesNode.children()); + tree.scrollPathToVisible(path); return null; }