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();
         }