1 19 20 package org.netbeans.modules.j2ee.oc4j.nodes; 21 22 import java.util.Iterator ; 23 import java.util.Vector ; 24 import javax.management.MBeanServerConnection ; 25 import javax.management.ObjectInstance ; 26 import javax.management.ObjectName ; 27 import org.netbeans.modules.j2ee.oc4j.OC4JDeploymentManager; 28 import org.netbeans.modules.j2ee.oc4j.nodes.actions.Refreshable; 29 import org.openide.nodes.Children; 30 import org.openide.nodes.Node; 31 import org.openide.util.Lookup; 32 import org.openide.util.RequestProcessor; 33 34 39 public class OC4JConnectionPoolsChildren extends Children.Keys implements Refreshable { 40 41 private Lookup lookup; 42 private final static Node WAIT_NODE = OC4JItemNode.createWaitNode(); 43 44 OC4JConnectionPoolsChildren(Lookup lookup) { 45 this.lookup = lookup; 46 } 47 48 public void updateKeys(){ 49 setKeys(new Object [] {WAIT_NODE}); 50 51 RequestProcessor.getDefault().post(new Runnable () { 52 Vector keys = new Vector (); 53 OC4JDeploymentManager dm = lookup.lookup(OC4JDeploymentManager.class); 54 55 public void run() { 56 57 try { 58 MBeanServerConnection server = dm.getJMXConnector(); 59 Iterator i = server.queryMBeans(new ObjectName ("oc4j:j2eeType=JDBCResource,*"), null).iterator(); 60 61 while(i.hasNext()) { 62 ObjectName elem = ((ObjectInstance ) i.next()).getObjectName(); 63 String name = elem.getKeyProperty("name").substring(1, elem.getKeyProperty("name").length()-1); 64 String url = (String ) server.getAttribute(elem, "url"); 65 66 Node node = new OC4JItemNode(lookup, Children.LEAF, name, OC4JItemNode.ItemType.CONNECTION_POOLS); 67 node.setShortDescription(url); 68 69 keys.add(node); 70 } 71 72 } catch(Exception ex) { 73 } 75 76 setKeys(keys); 77 } 78 }, 0); 79 } 80 81 protected void addNotify() { 82 updateKeys(); 83 } 84 85 protected void removeNotify() { 86 setKeys(java.util.Collections.EMPTY_SET); 87 } 88 89 protected org.openide.nodes.Node[] createNodes(Object key) { 90 if (key instanceof OC4JItemNode){ 91 return new Node[]{(OC4JItemNode)key}; 92 } 93 94 if (key instanceof String && key.equals(WAIT_NODE)){ 95 return new Node[]{WAIT_NODE}; 96 } 97 98 return null; 99 } 100 } | Popular Tags |