1 19 24 25 package org.netbeans.modules.j2ee.sun.ide.j2ee.runtime.nodes; 26 27 import java.lang.reflect.Constructor ; 28 import java.lang.reflect.Method ; 29 import javax.enterprise.deploy.spi.DeploymentManager ; 30 import javax.enterprise.deploy.spi.Target ; 31 import org.netbeans.modules.j2ee.sun.api.ServerLocationManager; 32 import org.netbeans.modules.j2ee.sun.api.SunDeploymentManagerInterface; 33 34 38 public class NodeFactory implements org.netbeans.modules.j2ee.deployment.plugins.api.RegistryNodeFactory { 39 40 41 public NodeFactory() { 42 } 43 44 public org.openide.nodes.Node getManagerNode(org.openide.util.Lookup lookup) { 45 DeploymentManager depManager = (DeploymentManager ) lookup.lookup(DeploymentManager .class); 46 49 if (depManager == null ) { 50 System.out.println("WARNING: getManagerNode lookup returned "+depManager); return null; 52 } 53 return new ManagerNode(depManager); 54 } 55 56 public org.openide.nodes.Node getTargetNode(org.openide.util.Lookup lookup) { 57 Target target = (Target ) lookup.lookup(Target .class); 58 DeploymentManager depManager = (DeploymentManager ) lookup.lookup(DeploymentManager .class); 59 60 if (depManager == null ) { 61 System.out.println("WARNING: getManagerNode lookup returned "+depManager); } 63 if (target == null ) { 64 System.out.println("WARNING: getTargetNode lookup returned "+target); return null; 66 } 67 68 69 try{ 70 return initializePluginTree(depManager); 71 } catch (Exception e){ 72 System.out.println("Cannot create the instance node in the " + 73 "factory " + e); } 75 76 77 return null; } 79 80 81 85 private org.openide.nodes.Node initializePluginTree( final DeploymentManager deployMgr) throws Exception { 86 ClassLoader origClassLoader=Thread.currentThread().getContextClassLoader(); 87 try{ 88 SunDeploymentManagerInterface sdm = (SunDeploymentManagerInterface)deployMgr; 89 ClassLoader loader = ServerLocationManager.getNetBeansAndServerClassLoader(sdm.getPlatformRoot()); 90 Class pluginRootFactoryClass =loader.loadClass("org.netbeans.modules.j2ee.sun.util.PluginRootNodeFactory"); Constructor constructor =pluginRootFactoryClass.getConstructor(new Class [] {DeploymentManager .class}); 92 Object pluginRootFactory =constructor.newInstance(new Object [] {deployMgr}); 93 Class factoryClazz = pluginRootFactory.getClass(); 94 Method method =factoryClazz.getMethod("getPluginRootNode", (Class [])null); 95 96 97 Thread.currentThread().setContextClassLoader( loader); 98 99 100 return (org.openide.nodes.Node)method.invoke(pluginRootFactory, (Object []) null); 101 } catch (Exception e){ 102 throw e; 103 } finally { 104 Thread.currentThread().setContextClassLoader(origClassLoader); 105 } 106 } 107 108 109 110 } 111 | Popular Tags |