You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by va...@apache.org on 2008/03/27 13:38:46 UTC

svn commit: r641794 - /geronimo/server/branches/2.1/plugins/system-database/sysdb-portlets/src/main/java/org/apache/geronimo/console/internaldb/DerbyConnectionUtil.java

Author: vamsic007
Date: Thu Mar 27 05:38:44 2008
New Revision: 641794

URL: http://svn.apache.org/viewvc?rev=641794&view=rev
Log:
GERONIMO-3875 Enabling authentication for Derby renders DB Viewer portlet unusable for all db's except SystemDatabase
 o Enables using DB portlet for databases with connection pools defined.

Modified:
    geronimo/server/branches/2.1/plugins/system-database/sysdb-portlets/src/main/java/org/apache/geronimo/console/internaldb/DerbyConnectionUtil.java

Modified: geronimo/server/branches/2.1/plugins/system-database/sysdb-portlets/src/main/java/org/apache/geronimo/console/internaldb/DerbyConnectionUtil.java
URL: http://svn.apache.org/viewvc/geronimo/server/branches/2.1/plugins/system-database/sysdb-portlets/src/main/java/org/apache/geronimo/console/internaldb/DerbyConnectionUtil.java?rev=641794&r1=641793&r2=641794&view=diff
==============================================================================
--- geronimo/server/branches/2.1/plugins/system-database/sysdb-portlets/src/main/java/org/apache/geronimo/console/internaldb/DerbyConnectionUtil.java (original)
+++ geronimo/server/branches/2.1/plugins/system-database/sysdb-portlets/src/main/java/org/apache/geronimo/console/internaldb/DerbyConnectionUtil.java Thu Mar 27 05:38:44 2008
@@ -26,11 +26,16 @@
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.geronimo.console.util.KernelManagementHelper;
+import org.apache.geronimo.console.util.ManagementHelper;
 import org.apache.geronimo.derby.DerbySystemGBean;
 import org.apache.geronimo.gbean.AbstractName;
 import org.apache.geronimo.gbean.AbstractNameQuery;
+import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
+import org.apache.geronimo.kernel.Kernel;
 import org.apache.geronimo.kernel.KernelRegistry;
 import org.apache.geronimo.management.JCAManagedConnectionFactory;
+import org.apache.geronimo.management.geronimo.ResourceAdapterModule;
 
 /**
  * A static class to handle retreiving connections. This class is built to
@@ -183,6 +188,25 @@
         } catch (Exception e) {
         	log.error("Problem getting datasource " + dbName, e);
         }
+        
+        Kernel kernel = KernelRegistry.getSingleKernel();
+        ManagementHelper helper = new KernelManagementHelper(kernel);
+        ResourceAdapterModule[] modules = helper.getOutboundRAModules(helper.getDomains()[0].getServerInstances()[0], "javax.sql.DataSource");
+        for (ResourceAdapterModule module : modules) {
+            org.apache.geronimo.management.geronimo.JCAManagedConnectionFactory[] databases = helper.getOutboundFactories(module, "javax.sql.DataSource");
+            for (org.apache.geronimo.management.geronimo.JCAManagedConnectionFactory db : databases) {
+                try {
+                    Object databaseName = db.getConfigProperty("DatabaseName");
+                    if(dbName.equalsIgnoreCase((String) databaseName)) {
+                        AbstractName tempDbName = helper.getNameFor(db);
+                        return (DataSource) KernelRegistry.getSingleKernel().invoke(
+                                tempDbName, "$getResource");
+                    }
+                } catch (Exception ignored) {
+                }
+            }
+        }
+        
         return null;
     }