You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by jb...@apache.org on 2014/05/05 05:16:11 UTC
git commit: [KARAF-2941] Add status on datasources and log exceptions
Repository: karaf
Updated Branches:
refs/heads/master c0c439e64 -> 13158bdbf
[KARAF-2941] Add status on datasources and log exceptions
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/13158bdb
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/13158bdb
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/13158bdb
Branch: refs/heads/master
Commit: 13158bdbf898193f9be05338339f67b829992a8f
Parents: c0c439e
Author: Jean-Baptiste Onofré <jb...@apache.org>
Authored: Mon May 5 05:15:07 2014 +0200
Committer: Jean-Baptiste Onofré <jb...@apache.org>
Committed: Mon May 5 05:15:07 2014 +0200
----------------------------------------------------------------------
.../karaf/jdbc/command/DataSourcesCommand.java | 9 ++++++--
.../karaf/jdbc/internal/JdbcMBeanImpl.java | 24 ++++++++++++--------
.../karaf/jdbc/internal/JdbcServiceImpl.java | 7 ++++++
3 files changed, 29 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf/blob/13158bdb/jdbc/src/main/java/org/apache/karaf/jdbc/command/DataSourcesCommand.java
----------------------------------------------------------------------
diff --git a/jdbc/src/main/java/org/apache/karaf/jdbc/command/DataSourcesCommand.java b/jdbc/src/main/java/org/apache/karaf/jdbc/command/DataSourcesCommand.java
index cb3edad..f0674f8 100644
--- a/jdbc/src/main/java/org/apache/karaf/jdbc/command/DataSourcesCommand.java
+++ b/jdbc/src/main/java/org/apache/karaf/jdbc/command/DataSourcesCommand.java
@@ -35,11 +35,16 @@ public class DataSourcesCommand extends JdbcCommandSupport {
table.column("Product");
table.column("Version");
table.column("URL");
+ table.column("Status");
List<String> datasources = this.getJdbcService().datasources();
for (String datasource : datasources) {
- Map<String, String> info = this.getJdbcService().info(datasource);
- table.addRow().addContent(datasource, info.get("db.product"), info.get("db.version"), info.get("url"));
+ try {
+ Map<String, String> info = this.getJdbcService().info(datasource);
+ table.addRow().addContent(datasource, info.get("db.product"), info.get("db.version"), info.get("url"), "OK");
+ } catch (Exception e) {
+ table.addRow().addContent(datasource, "", "", "", "Error");
+ }
}
table.print(System.out);
http://git-wip-us.apache.org/repos/asf/karaf/blob/13158bdb/jdbc/src/main/java/org/apache/karaf/jdbc/internal/JdbcMBeanImpl.java
----------------------------------------------------------------------
diff --git a/jdbc/src/main/java/org/apache/karaf/jdbc/internal/JdbcMBeanImpl.java b/jdbc/src/main/java/org/apache/karaf/jdbc/internal/JdbcMBeanImpl.java
index 92bbba8..9f294c3 100644
--- a/jdbc/src/main/java/org/apache/karaf/jdbc/internal/JdbcMBeanImpl.java
+++ b/jdbc/src/main/java/org/apache/karaf/jdbc/internal/JdbcMBeanImpl.java
@@ -35,21 +35,27 @@ public class JdbcMBeanImpl implements JdbcMBean {
public TabularData getDatasources() throws MBeanException {
try {
CompositeType type = new CompositeType("DataSource", "JDBC DataSource",
- new String[]{ "name", "product", "version", "url "},
- new String[]{ "Name", "Database product", "Database version", "JDBC URL" },
- new OpenType[]{ SimpleType.STRING, SimpleType.STRING, SimpleType.STRING, SimpleType.STRING });
+ new String[]{ "name", "product", "version", "url", "status"},
+ new String[]{ "Name", "Database product", "Database version", "JDBC URL", "Status" },
+ new OpenType[]{ SimpleType.STRING, SimpleType.STRING, SimpleType.STRING, SimpleType.STRING, SimpleType.STRING });
TabularType tableType = new TabularType("JDBC DataSources", "Table of the JDBC DataSources",
type, new String[]{ "name" });
TabularData table = new TabularDataSupport(tableType);
for (String datasource : jdbcService.datasources()) {
- Map<String, String> info = jdbcService.info(datasource);
- CompositeData data = new CompositeDataSupport(type,
- new String[]{ "name", "product", "version", "url" },
- new Object[]{ datasource, info.get("db.product"), info.get("db.version"), info.get("url") });
- table.put(data);
+ try {
+ Map<String, String> info = jdbcService.info(datasource);
+ CompositeData data = new CompositeDataSupport(type,
+ new String[]{"name", "product", "version", "url", "status"},
+ new Object[]{datasource, info.get("db.product"), info.get("db.version"), info.get("url"), "OK"});
+ table.put(data);
+ } catch (Exception e) {
+ CompositeData data = new CompositeDataSupport(type,
+ new String[]{"name", "product", "version", "url", "status"},
+ new Object[]{datasource, "", "", "", "ERROR"});
+ table.put(data);
+ }
}
-
return table;
} catch (Exception e) {
throw new MBeanException(null, e.getMessage());
http://git-wip-us.apache.org/repos/asf/karaf/blob/13158bdb/jdbc/src/main/java/org/apache/karaf/jdbc/internal/JdbcServiceImpl.java
----------------------------------------------------------------------
diff --git a/jdbc/src/main/java/org/apache/karaf/jdbc/internal/JdbcServiceImpl.java b/jdbc/src/main/java/org/apache/karaf/jdbc/internal/JdbcServiceImpl.java
index 50cf8ff..c123cfe 100644
--- a/jdbc/src/main/java/org/apache/karaf/jdbc/internal/JdbcServiceImpl.java
+++ b/jdbc/src/main/java/org/apache/karaf/jdbc/internal/JdbcServiceImpl.java
@@ -22,6 +22,8 @@ import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
import org.osgi.framework.Constants;
import org.osgi.framework.ServiceReference;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import javax.sql.DataSource;
import javax.sql.XADataSource;
@@ -75,6 +77,8 @@ public class JdbcServiceImpl implements JdbcService {
}
+ private static final Logger LOGGER = LoggerFactory.getLogger(JdbcServiceImpl.class);
+
private BundleContext bundleContext;
@Override
@@ -219,6 +223,9 @@ public class JdbcServiceImpl implements JdbcService {
map.put("driver.name", dbMetaData.getDriverName());
map.put("driver.version", dbMetaData.getDriverVersion());
return map;
+ } catch (Exception e) {
+ LOGGER.error("Can't get information about datasource {}", datasource, e);
+ throw e;
} finally {
jdbcConnector.close();
}