geronimo-scm mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jlaskow...@apache.org
Subject svn commit: r549644 [7/8] - in /geronimo/sandbox/geronimo-netbeans-plugin: ./ src/ src/main/ src/main/java/ src/main/java/org/ src/main/java/org/apache/ src/main/java/org/apache/geronimo/ src/main/java/org/apache/geronimo/netbeans/ src/main/java/org/ap...
Date Thu, 21 Jun 2007 23:18:41 GMT
Added: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/GeronimoServletsChildren.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/GeronimoServletsChildren.java?view=auto&rev=549644
==============================================================================
--- geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/GeronimoServletsChildren.java (added)
+++ geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/GeronimoServletsChildren.java Thu Jun 21 16:18:31 2007
@@ -0,0 +1,108 @@
+package org.apache.geronimo.netbeans.nodes;
+
+import java.lang.reflect.InvocationTargetException;
+import java.util.Iterator;
+import java.util.Set;
+import java.util.Vector;
+import javax.management.MalformedObjectNameException;
+import javax.management.ObjectInstance;
+import javax.management.ObjectName;
+import javax.management.QueryExp;
+import org.openide.ErrorManager;
+import org.openide.nodes.AbstractNode;
+import org.openide.nodes.Children;
+import org.openide.nodes.Node;
+import org.openide.util.Lookup;
+import org.openide.util.NbBundle;
+import org.openide.util.RequestProcessor;
+
+/**
+ * It describes children nodes of the Web Module node.
+ */
+public class GeronimoServletsChildren extends Children.Keys {
+
+    private static final String WAIT_NODE = "wait_node"; // NOI18N
+
+    private String name;
+    private Lookup lookup;
+
+    GeronimoServletsChildren(String name, Lookup lookup) {
+        this.lookup = lookup;
+        this.name = name;
+    }
+
+    public void updateKeys() {
+        setKeys(new Object[] { WAIT_NODE });
+
+        RequestProcessor.getDefault().post(new Runnable() {
+            Vector keys = new Vector();
+
+            public void run() {
+                try {
+                    Object server = Util.getRMIServer(lookup);
+                    ObjectName searchPattern = new ObjectName("geronimo.management.local:WebModule=" + name
+                            + ",j2eeType=Servlet,*");
+                    Set managedObj = (Set) server.getClass().getMethod("queryMBeans",
+                            new Class[] { ObjectName.class, QueryExp.class }).invoke(server,
+                            new Object[] { searchPattern, null });
+
+                    Iterator it = managedObj.iterator();
+
+                    // Query results processing
+                    while (it.hasNext()) {
+                        ObjectName elem = ((ObjectInstance) it.next()).getObjectName();
+                        String s = elem.getKeyProperty("name");
+                        throw new IllegalArgumentException("TODO");
+                    }
+                } catch (MalformedObjectNameException ex) {
+                    ErrorManager.getDefault().log(ErrorManager.EXCEPTION, ex.getMessage());
+                } catch (NullPointerException ex) {
+                    ErrorManager.getDefault().log(ErrorManager.EXCEPTION, ex.getMessage());
+                } catch (IllegalArgumentException ex) {
+                    ErrorManager.getDefault().log(ErrorManager.EXCEPTION, ex.getMessage());
+                } catch (SecurityException ex) {
+                    ErrorManager.getDefault().log(ErrorManager.EXCEPTION, ex.getMessage());
+                } catch (InvocationTargetException ex) {
+                    ErrorManager.getDefault().log(ErrorManager.EXCEPTION, ex.getMessage());
+                } catch (IllegalAccessException ex) {
+                    ErrorManager.getDefault().log(ErrorManager.EXCEPTION, ex.getMessage());
+                } catch (NoSuchMethodException ex) {
+                    ErrorManager.getDefault().log(ErrorManager.EXCEPTION, ex.getMessage());
+                }
+
+                setKeys(keys);
+            }
+        }, 0);
+    }
+
+    protected void addNotify() {
+        updateKeys();
+    }
+
+    protected void removeNotify() {
+        setKeys(java.util.Collections.EMPTY_SET);
+    }
+
+    protected org.openide.nodes.Node[] createNodes(Object key) {
+        if (key instanceof GeronimoServletNode) {
+            return new Node[] { (GeronimoServletNode) key };
+        }
+
+        if (key instanceof String && key.equals(WAIT_NODE)) {
+            return new Node[] { createWaitNode() };
+        }
+
+        return null;
+    }
+
+    /*
+     * Creates and returns the instance of the node representing the status 'WAIT' of the node. It is used when it spent
+     * more time to create elements hierarchy. @return the wait node.
+     */
+    private Node createWaitNode() {
+        AbstractNode n = new AbstractNode(Children.LEAF);
+        n.setName(NbBundle.getMessage(GeronimoApplicationsChildren.class, "LBL_WaitNode_DisplayName")); // NOI18N
+        n.setIconBaseWithExtension("org/openide/src/resources/wait.gif"); // NOI18N
+        return n;
+    }
+}
\ No newline at end of file

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/GeronimoServletsChildren.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/GeronimoServletsChildren.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/GeronimoServletsChildren.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/GeronimoServletsChildren.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/GeronimoTargetNode.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/GeronimoTargetNode.java?view=auto&rev=549644
==============================================================================
--- geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/GeronimoTargetNode.java (added)
+++ geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/GeronimoTargetNode.java Thu Jun 21 16:18:31 2007
@@ -0,0 +1,17 @@
+package org.apache.geronimo.netbeans.nodes;
+
+import org.openide.nodes.AbstractNode;
+import org.openide.nodes.Children;
+import org.openide.nodes.Node;
+import org.openide.util.Lookup;
+import org.openide.util.NbBundle;
+
+public class GeronimoTargetNode extends AbstractNode {
+
+    public GeronimoTargetNode(Lookup lookup) {
+        super(new Children.Array());
+        getChildren().add(
+                new Node[] { new GeronimoItemNode(new GeronimoApplicationsChildren(lookup), NbBundle.getMessage(
+                        GeronimoTargetNode.class, "LBL_Apps")) });
+    }
+}

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/GeronimoTargetNode.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/GeronimoTargetNode.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/GeronimoTargetNode.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/GeronimoTargetNode.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/GeronimoWebApplicationsChildren.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/GeronimoWebApplicationsChildren.java?view=auto&rev=549644
==============================================================================
--- geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/GeronimoWebApplicationsChildren.java (added)
+++ geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/GeronimoWebApplicationsChildren.java Thu Jun 21 16:18:31 2007
@@ -0,0 +1,125 @@
+package org.apache.geronimo.netbeans.nodes;
+
+import java.util.Iterator;
+import java.util.Set;
+import java.util.Vector;
+
+import javax.management.ObjectInstance;
+import javax.management.ObjectName;
+import javax.management.QueryExp;
+
+import org.apache.geronimo.netbeans.GeronimoDeploymentManager;
+import org.apache.geronimo.netbeans.nodes.actions.Refreshable;
+import org.openide.ErrorManager;
+import org.openide.nodes.Children;
+import org.openide.nodes.Node;
+import org.openide.util.Lookup;
+import org.openide.util.RequestProcessor;
+
+/**
+ * It describes children nodes of the Web Applications node. Implements Refreshable interface and due to it can be
+ * refreshed via ResreshModulesAction.
+ */
+public class GeronimoWebApplicationsChildren extends Children.Keys implements Refreshable {
+
+    private Lookup lookup;
+    private Boolean remoteManagementSupported = null;
+
+    public GeronimoWebApplicationsChildren(Lookup lookup) {
+        this.lookup = lookup;
+    }
+
+    public void updateKeys() {
+        setKeys(new Object[] { Util.WAIT_NODE });
+
+        RequestProcessor.getDefault().post(new Runnable() {
+            Vector keys = new Vector();
+
+            public void run() {
+                try {
+                    ObjectName searchPattern;
+                    if (isRemoteManagementSupported()) {
+                        searchPattern = new ObjectName(
+                                "geronimo.management.local:j2eeType=WebModule,J2EEApplication=null,*"); // NOI18N
+                    } else {
+                        searchPattern = new ObjectName("geronimo.web:j2eeType=WebModule,J2EEApplication=none,*"); // NOI18N
+                    }
+
+                    Object server = Util.getRMIServer(lookup);
+                    Set managedObj = (Set) server.getClass().getMethod("queryMBeans",
+                            new Class[] { ObjectName.class, QueryExp.class }).invoke(server,
+                            new Object[] { searchPattern, null });
+
+                    Iterator it = managedObj.iterator();
+
+                    GeronimoDeploymentManager dm = (GeronimoDeploymentManager) lookup
+                            .lookup(GeronimoDeploymentManager.class);
+
+                    // Query results processing
+                    while (it.hasNext()) {
+                        try {
+                            ObjectName elem = ((ObjectInstance) it.next()).getObjectName();
+                            String name = elem.getKeyProperty("name");
+                            String url = "http://" + dm.getHost() + ":" + dm.getPort();
+                            String context = "";
+                            if (isRemoteManagementSupported()) {
+                                if ("jmx-console.war".equals(name)) {
+                                    continue;
+                                }
+                                String descr = (String) Util.getMBeanParameter(dm, "geronimoWebDeploymentDescriptor",
+                                        elem.getCanonicalName()); // NOI18N
+                                context = Util.getWebContextRoot(descr);
+                            } else {
+                                if (name.startsWith("//localhost/")) { // NOI18N
+                                    name = name.substring("//localhost/".length()); // NOI18N
+                                }
+                                // excluding system packages
+                                if ("".equals(name) || "jmx-console".equals(name) || "geronimows".equals(name)
+                                        || "web-console".equals(name) || "invoker".equals(name)) {
+                                    continue;
+                                }
+                                name += ".war"; // NOI18N
+
+                                context = (String) Util.getMBeanParameter(dm, "path", elem.getCanonicalName()); // NOI18N
+                            }
+                            keys.add(new GeronimoWebModuleNode(name, lookup, (context == null ? null : url + context)));
+                        } catch (Exception ex) {
+                            ErrorManager.getDefault().notify(ErrorManager.INFORMATIONAL, ex);
+                        }
+                    }
+                } catch (Exception ex) {
+                    ErrorManager.getDefault().notify(ErrorManager.INFORMATIONAL, ex);
+                }
+
+                setKeys(keys);
+            }
+        }, 0);
+    }
+
+    protected void addNotify() {
+        updateKeys();
+    }
+
+    protected void removeNotify() {
+        setKeys(java.util.Collections.EMPTY_SET);
+    }
+
+    protected org.openide.nodes.Node[] createNodes(Object key) {
+        if (key instanceof GeronimoWebModuleNode) {
+            return new Node[] { (GeronimoWebModuleNode) key };
+        }
+
+        if (key instanceof String && key.equals(Util.WAIT_NODE)) {
+            return new Node[] { Util.createWaitNode() };
+        }
+
+        return null;
+    }
+
+    private boolean isRemoteManagementSupported() {
+        if (remoteManagementSupported == null) {
+            remoteManagementSupported = Util.isRemoteManagementSupported(lookup);
+        }
+        return remoteManagementSupported;
+    }
+}

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/GeronimoWebApplicationsChildren.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/GeronimoWebApplicationsChildren.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/GeronimoWebApplicationsChildren.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/GeronimoWebApplicationsChildren.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/GeronimoWebModuleNode.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/GeronimoWebModuleNode.java?view=auto&rev=549644
==============================================================================
--- geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/GeronimoWebModuleNode.java (added)
+++ geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/GeronimoWebModuleNode.java Thu Jun 21 16:18:31 2007
@@ -0,0 +1,72 @@
+package org.apache.geronimo.netbeans.nodes;
+
+import java.awt.Image;
+import javax.enterprise.deploy.shared.ModuleType;
+import javax.swing.Action;
+import org.apache.geronimo.netbeans.nodes.actions.OpenURLAction;
+import org.apache.geronimo.netbeans.nodes.actions.OpenURLActionCookie;
+import org.apache.geronimo.netbeans.nodes.actions.UndeployModuleAction;
+import org.apache.geronimo.netbeans.nodes.actions.UndeployModuleCookieImpl;
+import org.netbeans.modules.j2ee.deployment.plugins.api.UISupport;
+import org.netbeans.modules.j2ee.deployment.plugins.api.UISupport.ServerIcon;
+import org.openide.nodes.AbstractNode;
+import org.openide.util.Lookup;
+import org.openide.util.actions.SystemAction;
+
+/**
+ * Node which describes Web Module.
+ */
+public class GeronimoWebModuleNode extends AbstractNode {
+
+    final boolean isRemoteManagementSupported;
+
+    public GeronimoWebModuleNode(String fileName, Lookup lookup, String url) {
+        super(new GeronimoServletsChildren(fileName, lookup));
+        setDisplayName(fileName.substring(0, fileName.indexOf('.')));
+        isRemoteManagementSupported = Util.isRemoteManagementSupported(lookup);
+        if (isRemoteManagementSupported) {
+            // we cannot find out the .war name w/o the management support, thus
+            // we cannot enable the Undeploy action
+            getCookieSet().add(new UndeployModuleCookieImpl(fileName, ModuleType.WAR, lookup));
+        }
+
+        if (url != null)
+            getCookieSet().add(new OpenURLActionCookieImpl(url));
+    }
+
+    public Action[] getActions(boolean context) {
+        if (getParentNode() instanceof GeronimoEarApplicationNode) {
+            return new SystemAction[] { SystemAction.get(OpenURLAction.class) };
+        } else {
+            if (isRemoteManagementSupported) {
+                return new SystemAction[] { SystemAction.get(OpenURLAction.class),
+                        SystemAction.get(UndeployModuleAction.class) };
+            } else {
+                // we cannot find out the .war name w/o the management support,
+                // thus we cannot enable the Undeploy action
+                return new SystemAction[] { SystemAction.get(OpenURLAction.class), };
+            }
+        }
+    }
+
+    public Image getIcon(int type) {
+        return UISupport.getIcon(ServerIcon.WAR_ARCHIVE);
+    }
+
+    public Image getOpenedIcon(int type) {
+        return getIcon(type);
+    }
+
+    private static class OpenURLActionCookieImpl implements OpenURLActionCookie {
+
+        private String url;
+
+        public OpenURLActionCookieImpl(String url) {
+            this.url = url;
+        }
+
+        public String getWebURL() {
+            return url;
+        }
+    }
+}

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/GeronimoWebModuleNode.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/GeronimoWebModuleNode.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/GeronimoWebModuleNode.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/GeronimoWebModuleNode.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/Util.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/Util.java?view=auto&rev=549644
==============================================================================
--- geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/Util.java (added)
+++ geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/Util.java Thu Jun 21 16:18:31 2007
@@ -0,0 +1,198 @@
+package org.apache.geronimo.netbeans.nodes;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.lang.reflect.InvocationTargetException;
+import java.util.Set;
+import javax.enterprise.deploy.shared.ModuleType;
+import javax.management.AttributeNotFoundException;
+import javax.management.InstanceNotFoundException;
+import javax.management.MBeanException;
+import javax.management.MBeanServerConnection;
+import javax.management.MalformedObjectNameException;
+import javax.management.ObjectName;
+import javax.management.QueryExp;
+import javax.management.ReflectionException;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+import org.apache.geronimo.netbeans.GeronimoDeploymentManager;
+import org.openide.ErrorManager;
+import org.openide.nodes.AbstractNode;
+import org.openide.nodes.Children;
+import org.openide.nodes.Node;
+import org.openide.util.Lookup;
+import org.openide.util.NbBundle;
+import org.w3c.dom.Document;
+import org.xml.sax.SAXException;
+
+public class Util {
+    public static final String WAIT_NODE = "wait_node"; // NOI18N
+    public static final String INFO_NODE = "info_node"; // NOI18N
+
+    public static MBeanServerConnection getRMIServer(Lookup lookup) {
+        return getRMIServer((GeronimoDeploymentManager) lookup.lookup(GeronimoDeploymentManager.class));
+    }
+
+    public static MBeanServerConnection getRMIServer(GeronimoDeploymentManager manager) {
+        return manager.getRMIServer();
+    }
+
+    /*
+     * Creates and returns the instance of the node representing the status 'WAIT' of the node. It is used when it spent
+     * more time to create elements hierarchy. @return the wait node.
+     */
+    public static Node createWaitNode() {
+        AbstractNode n = new AbstractNode(Children.LEAF);
+        n.setName(NbBundle.getMessage(GeronimoItemNode.class, "LBL_WaitNode_DisplayName")); // NOI18N
+        n.setIconBaseWithExtension("org/openide/src/resources/wait.gif"); // NOI18N
+        return n;
+    }
+
+    /*
+     * Creates and returns the instance of the node representing the status 'INFO' of the node. It is used when it spent
+     * more time to create elements hierarchy. @return the wait node.
+     */
+    public static Node createInfoNode() {
+        AbstractNode n = new AbstractNode(Children.LEAF);
+        n.setName(NbBundle.getMessage(GeronimoItemNode.class, "LBL_InfoNode_DisplayName")); // NOI18N
+        n.setShortDescription(NbBundle.getMessage(GeronimoItemNode.class, "LBL_InfoNode_ToolTip")); // NOI18N
+        n.setIconBaseWithExtension("org/netbeans/core/resources/exception.gif"); // NOI18N
+        return n;
+    }
+
+    /*
+     * @return is remote management supported
+     */
+    public static boolean isRemoteManagementSupported(Lookup lookup) {
+
+        try {
+            Object server = Util.getRMIServer(lookup);
+            ObjectName searchPattern;
+            searchPattern = new ObjectName("geronimo.management.local:*");
+            Set managedObj = (Set) server.getClass().getMethod("queryMBeans",
+                    new Class[] { ObjectName.class, QueryExp.class }).invoke(server,
+                    new Object[] { searchPattern, null });
+
+            if (managedObj.size() == 0)
+                return false;
+        } catch (SecurityException ex) {
+            ErrorManager.getDefault().notify(ErrorManager.INFORMATIONAL, ex);
+        } catch (IllegalArgumentException ex) {
+            ErrorManager.getDefault().notify(ErrorManager.INFORMATIONAL, ex);
+        } catch (IllegalAccessException ex) {
+            ErrorManager.getDefault().notify(ErrorManager.INFORMATIONAL, ex);
+        } catch (InvocationTargetException ex) {
+            ErrorManager.getDefault().notify(ErrorManager.INFORMATIONAL, ex);
+        } catch (NoSuchMethodException ex) {
+            ErrorManager.getDefault().notify(ErrorManager.INFORMATIONAL, ex);
+        } catch (MalformedObjectNameException ex) {
+            ErrorManager.getDefault().notify(ErrorManager.INFORMATIONAL, ex);
+        } catch (NullPointerException ex) {
+            ErrorManager.getDefault().notify(ErrorManager.INFORMATIONAL, ex);
+        }
+
+        return true;
+    }
+
+    /*
+     * @return if specified object is deployed
+     */
+    public static boolean isObjectDeployed(Object server, ObjectName searchPattern) {
+        try {
+            Set managedObj = (Set) server.getClass().getMethod("queryMBeans",
+                    new Class[] { ObjectName.class, QueryExp.class }).invoke(server,
+                    new Object[] { searchPattern, null });
+
+            if (managedObj.size() > 0)
+                return true;
+        } catch (IllegalArgumentException ex) {
+            ErrorManager.getDefault().notify(ErrorManager.INFORMATIONAL, ex);
+        } catch (SecurityException ex) {
+            ErrorManager.getDefault().notify(ErrorManager.INFORMATIONAL, ex);
+        } catch (InvocationTargetException ex) {
+            ErrorManager.getDefault().notify(ErrorManager.INFORMATIONAL, ex);
+        } catch (IllegalAccessException ex) {
+            ErrorManager.getDefault().notify(ErrorManager.INFORMATIONAL, ex);
+        } catch (NoSuchMethodException ex) {
+            ErrorManager.getDefault().notify(ErrorManager.INFORMATIONAL, ex);
+        }
+
+        return false;
+    }
+
+    /*
+     * @return string representation of the ModuleType
+     */
+    public static String getModuleTypeString(ModuleType mt) {
+        if (mt.equals(ModuleType.EAR))
+            return "J2EEApplication";
+        else if (mt.equals(ModuleType.WAR))
+            return "WebModule";
+        else if (mt.equals(ModuleType.EJB))
+            return "EJBModule";
+
+        return "undefined";
+    }
+
+    /*
+     * Returns MBean attribute which you can specify via method parameters
+     * 
+     * @return MBean attribute
+     */
+    public static Object getMBeanParameter(GeronimoDeploymentManager dm, String name, String targetObject) {
+        MBeanServerConnection server = dm.refreshRMIServer();
+        try {
+            return server.getAttribute(new ObjectName(targetObject), name);
+        } catch (InstanceNotFoundException ex) {
+            ErrorManager.getDefault().notify(ErrorManager.INFORMATIONAL, ex);
+        } catch (AttributeNotFoundException ex) {
+            ErrorManager.getDefault().notify(ErrorManager.INFORMATIONAL, ex);
+        } catch (MalformedObjectNameException ex) {
+            ErrorManager.getDefault().notify(ErrorManager.INFORMATIONAL, ex);
+        } catch (NullPointerException ex) {
+            // it's normal behaviour when the server is not running
+        } catch (IllegalArgumentException ex) {
+            // it's normal behaviour when the server is not running
+        } catch (ReflectionException ex) {
+            ErrorManager.getDefault().notify(ErrorManager.INFORMATIONAL, ex);
+        } catch (MBeanException ex) {
+            ErrorManager.getDefault().notify(ErrorManager.INFORMATIONAL, ex);
+        } catch (IOException ex) {
+            ErrorManager.getDefault().notify(ErrorManager.INFORMATIONAL, ex);
+        }
+
+        return null;
+    }
+
+    /*
+     * Parse web application's deployment descriptor and returns context root
+     * 
+     * @return context-root of web application
+     */
+    public static String getWebContextRoot(String dd) {
+
+        if (dd == null) {
+            return null;
+        }
+
+        Document doc = null;
+
+        try {
+            doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(
+                    new ByteArrayInputStream(dd.getBytes()));
+        } catch (SAXException ex) {
+            ErrorManager.getDefault().notify(ErrorManager.INFORMATIONAL, ex);
+            return null;
+        } catch (IOException ex) {
+            ErrorManager.getDefault().notify(ErrorManager.INFORMATIONAL, ex);
+            return null;
+        } catch (ParserConfigurationException ex) {
+            ErrorManager.getDefault().notify(ErrorManager.INFORMATIONAL, ex);
+            return null;
+        }
+
+        org.w3c.dom.Node node = doc.getElementsByTagName("context-root").item(0);
+
+        return node.getTextContent();
+    }
+}

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/Util.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/Util.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/Util.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/Util.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/OpenServerLogAction.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/OpenServerLogAction.java?view=auto&rev=549644
==============================================================================
--- geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/OpenServerLogAction.java (added)
+++ geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/OpenServerLogAction.java Thu Jun 21 16:18:31 2007
@@ -0,0 +1,70 @@
+package org.apache.geronimo.netbeans.nodes.actions;
+
+import java.io.File;
+import org.apache.geronimo.netbeans.GeronimoDeploymentManager;
+import org.apache.geronimo.netbeans.ide.LogWriter;
+import org.apache.geronimo.netbeans.ide.ui.GeronimoPluginProperties;
+import org.apache.geronimo.netbeans.nodes.GeronimoManagerNode;
+import org.netbeans.modules.j2ee.deployment.plugins.api.InstanceProperties;
+import org.netbeans.modules.j2ee.deployment.plugins.api.UISupport;
+import org.openide.nodes.Node;
+import org.openide.util.HelpCtx;
+import org.openide.util.NbBundle;
+import org.openide.util.actions.NodeAction;
+import org.openide.windows.InputOutput;
+
+public class OpenServerLogAction extends NodeAction {
+
+    public OpenServerLogAction() {
+    }
+
+    protected boolean enable(Node[] activatedNodes) {
+        return true;
+    }
+
+    protected void performAction(Node[] activatedNodes) {
+        for (Node activatedNode : activatedNodes) {
+            Object node = activatedNode.getLookup().lookup(GeronimoManagerNode.class);
+
+            if (!(node instanceof GeronimoManagerNode)) {
+                continue;
+            }
+
+            GeronimoDeploymentManager dm = ((GeronimoManagerNode) node).getDeploymentManager();
+            InputOutput io = UISupport.getServerIO(dm.getUrl());
+            if (io != null) {
+                io.select();
+            }
+
+            String instanceName = dm.getInstanceProperties().getProperty(InstanceProperties.DISPLAY_NAME_ATTR);
+            LogWriter logWriter = LogWriter.getInstance(instanceName);
+            if (logWriter == null) {
+                if (LogWriter.VERBOSE) {
+                    System.out.println("CREATING LOG WRITER reading from the server.log file");
+                }
+                logWriter = LogWriter.createInstance(io, instanceName);
+                String serverDir = dm.getInstanceProperties().getProperty(GeronimoPluginProperties.PROPERTY_SERVER_DIR);
+                String logFileName = serverDir + File.separator + "log" + File.separator + "server.log"; // NOI18N
+                File logFile = new File(logFileName);
+                if (logFile.exists()) {
+                    logWriter.start(logFile);
+                }
+            } else {
+                logWriter.refresh();
+            }
+        }
+    }
+
+    public HelpCtx getHelpCtx() {
+        return HelpCtx.DEFAULT_HELP;
+    }
+
+    public String getName() {
+        return NbBundle.getMessage(OpenServerLogAction.class, "LBL_OpenServerLogAction");
+    }
+
+    public boolean asynchronous() {
+        return false;
+    }
+
+}

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/OpenServerLogAction.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/OpenServerLogAction.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/OpenServerLogAction.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/OpenServerLogAction.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/OpenURLAction.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/OpenURLAction.java?view=auto&rev=549644
==============================================================================
--- geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/OpenURLAction.java (added)
+++ geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/OpenURLAction.java Thu Jun 21 16:18:31 2007
@@ -0,0 +1,64 @@
+package org.apache.geronimo.netbeans.nodes.actions;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import org.openide.ErrorManager;
+import org.openide.awt.HtmlBrowser.URLDisplayer;
+import org.openide.nodes.Node;
+import org.openide.util.HelpCtx;
+import org.openide.util.NbBundle;
+import org.openide.util.actions.NodeAction;
+
+/**
+ * Action which displays selected web module in browser.
+ */
+public class OpenURLAction extends NodeAction {
+
+    protected void performAction(Node[] nodes) {
+        for (int i = 0; i < nodes.length; i++) {
+            OpenURLActionCookie oCookie = (OpenURLActionCookie) nodes[i].getCookie(OpenURLActionCookie.class);
+
+            if (oCookie != null) {
+                try {
+                    URLDisplayer.getDefault().showURL(new URL(oCookie.getWebURL()));
+                } catch (MalformedURLException e) {
+                    ErrorManager.getDefault().notify(ErrorManager.INFORMATIONAL, e);
+                }
+            }
+        }
+    }
+
+    protected boolean enable(Node[] nodes) {
+        for (int i = 0; i < nodes.length; i++) {
+            OpenURLActionCookie oCookie = (OpenURLActionCookie) nodes[i].getCookie(OpenURLActionCookie.class);
+            UndeployModuleCookie uCookie = (UndeployModuleCookie) nodes[i].getCookie(UndeployModuleCookie.class);
+            UndeployModuleCookie upCookie = (UndeployModuleCookie) nodes[i].getParentNode().getCookie(
+                    UndeployModuleCookie.class);
+
+            if (uCookie != null)
+                if (uCookie.isRunning())
+                    return false;
+
+            if (upCookie != null)
+                if (upCookie.isRunning())
+                    return false;
+
+            if (oCookie != null)
+                return true;
+        }
+
+        return false;
+    }
+
+    public String getName() {
+        return NbBundle.getMessage(OpenURLAction.class, "LBL_OpenInBrowserAction"); // NOI18N
+    }
+
+    protected boolean asynchronous() {
+        return false;
+    }
+
+    public HelpCtx getHelpCtx() {
+        return HelpCtx.DEFAULT_HELP;
+    }
+}
\ No newline at end of file

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/OpenURLAction.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/OpenURLAction.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/OpenURLAction.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/OpenURLAction.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/OpenURLActionCookie.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/OpenURLActionCookie.java?view=auto&rev=549644
==============================================================================
--- geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/OpenURLActionCookie.java (added)
+++ geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/OpenURLActionCookie.java Thu Jun 21 16:18:31 2007
@@ -0,0 +1,7 @@
+package org.apache.geronimo.netbeans.nodes.actions;
+
+import org.openide.nodes.Node;
+
+public interface OpenURLActionCookie extends Node.Cookie {
+    public String getWebURL();
+}

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/OpenURLActionCookie.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/OpenURLActionCookie.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/OpenURLActionCookie.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/OpenURLActionCookie.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/RefreshModulesAction.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/RefreshModulesAction.java?view=auto&rev=549644
==============================================================================
--- geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/RefreshModulesAction.java (added)
+++ geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/RefreshModulesAction.java Thu Jun 21 16:18:31 2007
@@ -0,0 +1,45 @@
+package org.apache.geronimo.netbeans.nodes.actions;
+
+import org.apache.geronimo.netbeans.nodes.GeronimoItemNode;
+import org.openide.util.HelpCtx;
+import org.openide.util.NbBundle;
+import org.openide.util.actions.NodeAction;
+
+public class RefreshModulesAction extends NodeAction {
+
+    /** Creates a new instance of Undeploy */
+    public RefreshModulesAction() {
+    }
+
+    protected boolean enable(org.openide.nodes.Node[] nodes) {
+        RefreshModulesCookie cookie;
+        for (int i = 0; i < nodes.length; i++) {
+            cookie = (RefreshModulesCookie) nodes[i].getCookie(RefreshModulesCookie.class);
+            if (cookie == null)
+                return false;
+
+        }
+
+        return true;
+    }
+
+    public String getName() {
+        return NbBundle.getMessage(GeronimoItemNode.class, "LBL_RefreshModulesAction"); // NOI18N
+    }
+
+    protected void performAction(org.openide.nodes.Node[] nodes) {
+        for (int i = 0; i < nodes.length; i++) {
+            RefreshModulesCookie cookie = (RefreshModulesCookie) nodes[i].getCookie(RefreshModulesCookie.class);
+            if (cookie != null)
+                cookie.refresh();
+        }
+    }
+
+    protected boolean asynchronous() {
+        return false;
+    }
+
+    public org.openide.util.HelpCtx getHelpCtx() {
+        return HelpCtx.DEFAULT_HELP;
+    }
+}
\ No newline at end of file

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/RefreshModulesAction.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/RefreshModulesAction.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/RefreshModulesAction.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/RefreshModulesAction.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/RefreshModulesCookie.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/RefreshModulesCookie.java?view=auto&rev=549644
==============================================================================
--- geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/RefreshModulesCookie.java (added)
+++ geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/RefreshModulesCookie.java Thu Jun 21 16:18:31 2007
@@ -0,0 +1,7 @@
+package org.apache.geronimo.netbeans.nodes.actions;
+
+import org.openide.nodes.Node;
+
+public interface RefreshModulesCookie extends Node.Cookie {
+    public void refresh();
+}

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/RefreshModulesCookie.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/RefreshModulesCookie.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/RefreshModulesCookie.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/RefreshModulesCookie.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/Refreshable.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/Refreshable.java?view=auto&rev=549644
==============================================================================
--- geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/Refreshable.java (added)
+++ geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/Refreshable.java Thu Jun 21 16:18:31 2007
@@ -0,0 +1,5 @@
+package org.apache.geronimo.netbeans.nodes.actions;
+
+public interface Refreshable {
+    public void updateKeys();
+}

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/Refreshable.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/Refreshable.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/Refreshable.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/Refreshable.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/ShowAdminToolAction.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/ShowAdminToolAction.java?view=auto&rev=549644
==============================================================================
--- geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/ShowAdminToolAction.java (added)
+++ geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/ShowAdminToolAction.java Thu Jun 21 16:18:31 2007
@@ -0,0 +1,94 @@
+package org.apache.geronimo.netbeans.nodes.actions;
+
+import java.io.IOException;
+import java.net.MalformedURLException;
+import java.net.Socket;
+import java.net.URL;
+import java.net.UnknownHostException;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.apache.geronimo.netbeans.GeronimoDeploymentManager;
+import org.apache.geronimo.netbeans.nodes.GeronimoManagerNode;
+import org.openide.ErrorManager;
+import org.openide.awt.HtmlBrowser.URLDisplayer;
+import org.openide.nodes.Node;
+import org.openide.util.HelpCtx;
+import org.openide.util.NbBundle;
+import org.openide.util.actions.CookieAction;
+
+/**
+ * Action that can always be invoked and work procedurally. This action will display the URL for the given admin server
+ * node in the runtime explorer.
+ */
+public class ShowAdminToolAction extends CookieAction {
+
+    protected Class[] cookieClasses() {
+        return new Class[] {/* SourceCookie.class */};
+    }
+
+    protected int mode() {
+        return MODE_EXACTLY_ONE;
+        // return MODE_ALL;
+    }
+
+    protected void performAction(Node[] nodes) {
+        if ((nodes == null) || (nodes.length < 1))
+            return;
+
+        for (int i = 0; i < nodes.length; i++) {
+            Object node = nodes[i].getLookup().lookup(GeronimoManagerNode.class);
+            if (node instanceof GeronimoManagerNode) {
+                try {
+                    URL url = new URL(((GeronimoManagerNode) node).getAdminURL());
+                    URLDisplayer.getDefault().showURL(url);
+                } catch (MalformedURLException ex) {
+                    ErrorManager.getDefault().notify(ErrorManager.INFORMATIONAL, ex);
+                }
+            }
+        }
+    }
+
+    public String getName() {
+        return NbBundle.getMessage(ShowAdminToolAction.class, "LBL_ShowAdminGUIAction");
+    }
+
+    public HelpCtx getHelpCtx() {
+        return null; // HelpCtx.DEFAULT_HELP;
+        // If you will provide context help then use:
+        // return new HelpCtx(RefreshAction.class);
+    }
+
+    protected boolean enable(Node[] nodes) {
+        if (nodes == null || nodes.length < 1) {
+            return false;
+        }
+
+        boolean running = true;
+
+        for (int i = 0; i < nodes.length; i++) {
+            Object node = nodes[i].getLookup().lookup(GeronimoManagerNode.class);
+            if (!(node instanceof GeronimoManagerNode)) {
+                running = false;
+                break;
+            }
+
+            GeronimoDeploymentManager dm = ((GeronimoManagerNode) node).getDeploymentManager();
+
+            // try to get an open socket to the target host/port
+            try {
+                new Socket(dm.getHost(), dm.getPort());
+                running = true;
+            } catch (UnknownHostException e) {
+                Logger.getLogger("global").log(Level.SEVERE, null, e);
+            } catch (IOException e) {
+                running = false;
+            }
+        }
+        return running;
+    }
+
+    protected boolean asynchronous() {
+        return false;
+    }
+}
\ No newline at end of file

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/ShowAdminToolAction.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/ShowAdminToolAction.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/ShowAdminToolAction.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/ShowAdminToolAction.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/UndeployModuleAction.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/UndeployModuleAction.java?view=auto&rev=549644
==============================================================================
--- geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/UndeployModuleAction.java (added)
+++ geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/UndeployModuleAction.java Thu Jun 21 16:18:31 2007
@@ -0,0 +1,68 @@
+package org.apache.geronimo.netbeans.nodes.actions;
+
+import java.util.Enumeration;
+import org.openide.nodes.Node;
+import org.openide.util.HelpCtx;
+import org.openide.util.NbBundle;
+import org.openide.util.RequestProcessor;
+import org.openide.util.RequestProcessor.Task;
+import org.openide.util.actions.NodeAction;
+
+public class UndeployModuleAction extends NodeAction {
+
+    protected void performAction(Node[] nodes) {
+        if ((nodes == null) || (nodes.length < 1))
+            return;
+
+        for (int i = 0; i < nodes.length; i++) {
+            UndeployModuleCookie uCookie = (UndeployModuleCookie) nodes[i].getCookie(UndeployModuleCookie.class);
+            if (uCookie != null) {
+                final Task t = uCookie.undeploy();
+                final Node node = nodes[i].getParentNode();
+
+                RequestProcessor.getDefault().post(new Runnable() {
+                    public void run() {
+                        t.waitFinished();
+                        if (node != null) {
+                            Node apps = node.getParentNode();
+                            if (apps != null) {
+                                Enumeration appTypes = apps.getChildren().nodes();
+                                while (appTypes.hasMoreElements()) {
+                                    Node appType = (Node) appTypes.nextElement();
+                                    RefreshModulesCookie cookie = (RefreshModulesCookie) appType
+                                            .getCookie(RefreshModulesCookie.class);
+                                    if (cookie != null) {
+                                        cookie.refresh();
+                                    }
+                                }
+                            }
+                        }
+                    }
+                });
+            }
+        }
+    }
+
+    protected boolean enable(Node[] nodes) {
+        UndeployModuleCookie cookie;
+        for (int i = 0; i < nodes.length; i++) {
+            cookie = (UndeployModuleCookie) nodes[i].getCookie(UndeployModuleCookie.class);
+            if (cookie == null || cookie.isRunning())
+                return false;
+        }
+
+        return true;
+    }
+
+    public String getName() {
+        return NbBundle.getMessage(UndeployModuleAction.class, "LBL_UndeployAction");
+    }
+
+    protected boolean asynchronous() {
+        return false;
+    }
+
+    public org.openide.util.HelpCtx getHelpCtx() {
+        return HelpCtx.DEFAULT_HELP;
+    }
+}
\ No newline at end of file

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/UndeployModuleAction.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/UndeployModuleAction.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/UndeployModuleAction.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/UndeployModuleAction.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/UndeployModuleCookie.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/UndeployModuleCookie.java?view=auto&rev=549644
==============================================================================
--- geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/UndeployModuleCookie.java (added)
+++ geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/UndeployModuleCookie.java Thu Jun 21 16:18:31 2007
@@ -0,0 +1,11 @@
+package org.apache.geronimo.netbeans.nodes.actions;
+
+import org.openide.nodes.Node;
+import org.openide.util.RequestProcessor.Task;
+
+public interface UndeployModuleCookie extends Node.Cookie {
+
+    public Task undeploy();
+
+    public boolean isRunning();
+}
\ No newline at end of file

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/UndeployModuleCookie.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/UndeployModuleCookie.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/UndeployModuleCookie.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/UndeployModuleCookie.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/UndeployModuleCookieImpl.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/UndeployModuleCookieImpl.java?view=auto&rev=549644
==============================================================================
--- geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/UndeployModuleCookieImpl.java (added)
+++ geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/UndeployModuleCookieImpl.java Thu Jun 21 16:18:31 2007
@@ -0,0 +1,105 @@
+package org.apache.geronimo.netbeans.nodes.actions;
+
+import java.io.File;
+import javax.enterprise.deploy.shared.ModuleType;
+import javax.management.MalformedObjectNameException;
+import javax.management.ObjectName;
+import org.apache.geronimo.netbeans.GeronimoDeploymentManager;
+import org.apache.geronimo.netbeans.ide.ui.GeronimoPluginProperties;
+import org.apache.geronimo.netbeans.nodes.Util;
+import org.netbeans.api.progress.ProgressHandle;
+import org.netbeans.api.progress.ProgressHandleFactory;
+import org.openide.util.Lookup;
+import org.openide.util.NbBundle;
+import org.openide.util.RequestProcessor;
+import org.openide.util.RequestProcessor.Task;
+
+public class UndeployModuleCookieImpl implements UndeployModuleCookie {
+
+    private String fileName;
+    private Lookup lookup;
+    private ModuleType type;
+    private final boolean isEJB3;
+    private boolean isRunning;
+
+    public UndeployModuleCookieImpl(String fileName, ModuleType type, Lookup lookup) {
+        this(fileName, type, false, lookup);
+    }
+
+    public UndeployModuleCookieImpl(String fileName, Lookup lookup) {
+        this(fileName, ModuleType.EJB, true, lookup);
+    }
+
+    private UndeployModuleCookieImpl(String fileName, ModuleType type, boolean isEJB3, Lookup lookup) {
+        this.lookup = lookup;
+        this.fileName = fileName;
+        this.type = type;
+        this.isEJB3 = isEJB3;
+        this.isRunning = false;
+    }
+
+    public Task undeploy() {
+        final GeronimoDeploymentManager dm = (GeronimoDeploymentManager) lookup.lookup(GeronimoDeploymentManager.class);
+        final String nameWoExt = fileName.substring(0, fileName.lastIndexOf('.'));
+        final ProgressHandle handle = ProgressHandleFactory.createHandle(NbBundle.getMessage(
+                UndeployModuleCookieImpl.class, "LBL_UndeployProgress", nameWoExt));
+
+        Runnable r = new Runnable() {
+            public void run() {
+                isRunning = true;
+                String deployDir = dm.getInstanceProperties().getProperty(GeronimoPluginProperties.PROPERTY_DEPLOY_DIR);
+                File file = new File(deployDir, fileName);
+
+                if (file.exists() && file.canWrite()) {
+                    file.delete();
+
+                    try {
+                        ObjectName searchPattern = null;
+                        if (Util.isRemoteManagementSupported(lookup) && !isEJB3) {
+                            searchPattern = new ObjectName("geronimo.management.local:"
+                                    + (!type.equals(ModuleType.EAR) ? "J2EEApplication=null," : "") + "j2eeType="
+                                    + Util.getModuleTypeString(type) + ",name=" + fileName + ",*");
+                        } else {
+                            if (type.equals(ModuleType.EAR)) {
+                                searchPattern = new ObjectName("geronimo.j2ee:service=EARDeployment,url='" + fileName
+                                        + "'"); // NOI18N
+                            } else if (type.equals(ModuleType.WAR)) {
+                                searchPattern = new ObjectName(
+                                        "geronimo.web:j2eeType=WebModule,J2EEApplication=none,name=//localhost/"
+                                                + nameWoExt + ",*"); // NOI18N
+                            } else if (type.equals(ModuleType.EJB)) {
+                                searchPattern = new ObjectName("geronimo.j2ee:service="
+                                        + (isEJB3 ? "EJB3" : "EjbModule") + ",module=" + fileName); // NOI18N
+                            }
+                        }
+
+                        int time = 0;
+                        while (dm.refreshRMIServer() != null && Util.isObjectDeployed(dm.getRMIServer(), searchPattern)
+                                && time < 30000) {
+                            try {
+                                Thread.sleep(2000);
+                                time += 2000;
+                            } catch (InterruptedException ex) {
+                                // Nothing to do
+                            }
+                        }
+                    } catch (MalformedObjectNameException ex) {
+                    } catch (NullPointerException ex) {
+                        // Nothing to do
+                    }
+                }
+
+                handle.finish();
+                isRunning = false;
+            }
+        };
+
+        handle.start();
+        return RequestProcessor.getDefault().post(r);
+    }
+
+    public boolean isRunning() {
+        return isRunning;
+    }
+
+}
\ No newline at end of file

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/UndeployModuleCookieImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/UndeployModuleCookieImpl.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/UndeployModuleCookieImpl.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/nodes/actions/UndeployModuleCookieImpl.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/util/GeronimoProperties.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/util/GeronimoProperties.java?view=auto&rev=549644
==============================================================================
--- geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/util/GeronimoProperties.java (added)
+++ geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/util/GeronimoProperties.java Thu Jun 21 16:18:31 2007
@@ -0,0 +1,265 @@
+package org.apache.geronimo.netbeans.util;
+
+import java.io.BufferedInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FilenameFilter;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.List;
+import java.util.Properties;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import org.apache.geronimo.netbeans.GeronimoDeploymentManager;
+import org.apache.geronimo.netbeans.customizer.CustomizerSupport;
+import org.netbeans.api.java.platform.JavaPlatform;
+import org.netbeans.api.java.platform.JavaPlatformManager;
+import org.netbeans.api.java.platform.Specification;
+import org.netbeans.modules.j2ee.deployment.plugins.api.InstanceProperties;
+import org.openide.ErrorManager;
+import org.openide.filesystems.FileUtil;
+import org.openide.modules.InstalledFileLocator;
+import org.openide.util.NbCollections;
+
+public class GeronimoProperties {
+
+    /** Java platform property which is used as a java platform ID */
+    public static final String PLAT_PROP_ANT_NAME = "platform.ant.name"; // NOI18N
+
+    // properties
+    public static final String PROP_PROXY_ENABLED = "proxy_enabled"; // NOI18N
+    private static final String PROP_JAVA_PLATFORM = "java_platform"; // NOI18N
+    private static final String PROP_JAVA_OPTS = "java_opts"; // NOI18N
+    private static final String PROP_SOURCES = "sources"; // NOI18N
+    private static final String PROP_JAVADOCS = "javadocs"; // NOI18N
+    private static final String PROP_SERVER_DIR = "server-dir"; // NOI18N
+    private static final String PROP_ROOT_DIR = "root-dir"; // NOI18N
+
+    // default values
+    private static final String DEF_VALUE_JAVA_OPTS = ""; // NOI18N
+    private static final boolean DEF_VALUE_PROXY_ENABLED = true;
+
+    private final InstanceProperties ip;
+    private final GeronimoDeploymentManager manager;
+
+    // credentials initialized with default values
+    private String username = "system"; // NOI18N
+    private String password = "manager"; // NOI18N
+
+    /**
+     * timestamp of the jmx-console-users.properties file when it was parsed for the last time
+     */
+    private long updateCredentialsTimestamp;
+
+    private static final Logger LOGGER = Logger.getLogger(GeronimoProperties.class.getName());
+
+    public GeronimoProperties(GeronimoDeploymentManager manager) {
+        this.manager = manager;
+        ip = manager.getInstanceProperties();
+    }
+
+    public File getServerDir() {
+        return new File(ip.getProperty(PROP_SERVER_DIR));
+    }
+
+    public boolean getProxyEnabled() {
+        String val = ip.getProperty(PROP_PROXY_ENABLED);
+        return val != null ? Boolean.valueOf(val).booleanValue() : DEF_VALUE_PROXY_ENABLED;
+    }
+
+    public void setProxyEnabled(boolean enabled) {
+        ip.setProperty(PROP_PROXY_ENABLED, Boolean.toString(enabled));
+    }
+
+    public JavaPlatform getJavaPlatform() {
+        String currentJvm = ip.getProperty(PROP_JAVA_PLATFORM);
+        JavaPlatformManager jpm = JavaPlatformManager.getDefault();
+        JavaPlatform[] installedPlatforms = jpm.getPlatforms(null, new Specification("J2SE", null)); // NOI18N
+        for (int i = 0; i < installedPlatforms.length; i++) {
+            String platformName = (String) installedPlatforms[i].getProperties().get(PLAT_PROP_ANT_NAME);
+            if (platformName != null && platformName.equals(currentJvm)) {
+                return installedPlatforms[i];
+            }
+        }
+        // return default platform if none was set
+        return jpm.getDefaultPlatform();
+    }
+
+    public void setJavaPlatform(JavaPlatform javaPlatform) {
+        ip.setProperty(PROP_JAVA_PLATFORM, (String) javaPlatform.getProperties().get(PLAT_PROP_ANT_NAME));
+    }
+
+    public String getJavaOpts() {
+        String val = ip.getProperty(PROP_JAVA_OPTS);
+        return val != null ? val : DEF_VALUE_JAVA_OPTS;
+    }
+
+    public void setJavaOpts(String javaOpts) {
+        ip.setProperty(PROP_JAVA_OPTS, javaOpts);
+    }
+
+    public List<URL> getClasses() {
+        List<URL> list = new ArrayList<URL>();
+        try {
+            File serverDir = getServerDir();
+            list.add(fileToUrl(new File(serverDir, "client/geronimo-j2ee.jar"))); // NOI18N
+
+            File wsClientLib = new File(serverDir, "client/geronimows-client.jar"); // NOI18N
+            if (wsClientLib.exists()) {
+                list.add(fileToUrl(wsClientLib));
+            }
+
+            addFiles(new File(serverDir, "/lib"), list); // NOI18N
+
+            File jsfAPI = new File(serverDir, "/repository/jsf-libs/myfaces-api.jar"); // NOI18N
+            if (jsfAPI.exists()) {
+                try {
+                    list.add(fileToUrl(jsfAPI));
+                } catch (MalformedURLException e) {
+                    ErrorManager.getDefault().notify(ErrorManager.INFORMATIONAL, e);
+                }
+            } else if ((jsfAPI = new File(serverDir, "/repository/jsf-libs/jsf-api.jar")).exists()) { // NOI18N
+                try {
+                    list.add(fileToUrl(jsfAPI));
+                } catch (MalformedURLException e) {
+                    ErrorManager.getDefault().notify(ErrorManager.INFORMATIONAL, e);
+                }
+            }
+
+            File jsfIMPL = new File(serverDir, "/repository/jsf-libs/myfaces-impl.jar"); // NOI18N
+            if (jsfIMPL.exists()) {
+                try {
+                    list.add(fileToUrl(jsfIMPL));
+                } catch (MalformedURLException e) {
+                    ErrorManager.getDefault().notify(ErrorManager.INFORMATIONAL, e);
+                }
+            } else if ((jsfIMPL = new File(serverDir, "/repository/jsf-libs/jsf-impl.jar")).exists()) { // NOI18N
+                try {
+                    list.add(fileToUrl(jsfIMPL));
+                } catch (MalformedURLException e) {
+                    ErrorManager.getDefault().notify(ErrorManager.INFORMATIONAL, e);
+                }
+            }
+        } catch (MalformedURLException e) {
+            ErrorManager.getDefault().notify(ErrorManager.INFORMATIONAL, e);
+        }
+        return list;
+    }
+
+    private static class FF implements FilenameFilter {
+        public boolean accept(File dir, String name) {
+            return name.endsWith(".jar") || new File(dir, name).isDirectory(); // NOI18N
+        }
+    }
+
+    private void addFiles(File folder, List l) {
+        File files[] = folder.listFiles(new FF());
+        if (files == null)
+            return;
+        for (int i = 0; i < files.length; i++) {
+            if (files[i].isDirectory()) {
+                addFiles(files[i], l);
+            } else {
+                try {
+                    l.add(fileToUrl(files[i]));
+                } catch (MalformedURLException e) {
+                    ErrorManager.getDefault().notify(ErrorManager.INFORMATIONAL, e);
+                }
+            }
+        }
+    }
+
+    public List<URL> getSources() {
+        String path = ip.getProperty(PROP_SOURCES);
+        if (path == null) {
+            return new ArrayList<URL>();
+        }
+        return CustomizerSupport.tokenizePath(path);
+    }
+
+    public void setSources(List<URL> path) {
+        ip.setProperty(PROP_SOURCES, CustomizerSupport.buildPath(path));
+        manager.getPlatform().notifyLibrariesChanged();
+    }
+
+    public List<URL> getJavadocs() {
+        String path = ip.getProperty(PROP_JAVADOCS);
+        if (path == null) {
+            ArrayList<URL> list = new ArrayList<URL>();
+            try {
+                File j2eeDoc = InstalledFileLocator.getDefault().locate("docs/javaee5-doc-api.zip", null, false); // NOI18N
+                if (j2eeDoc != null) {
+                    list.add(fileToUrl(j2eeDoc));
+                }
+            } catch (MalformedURLException e) {
+                ErrorManager.getDefault().notify(ErrorManager.INFORMATIONAL, e);
+            }
+            return list;
+        }
+        return CustomizerSupport.tokenizePath(path);
+    }
+
+    public void setJavadocs(List<URL> path) {
+        ip.setProperty(PROP_JAVADOCS, CustomizerSupport.buildPath(path));
+        manager.getPlatform().notifyLibrariesChanged();
+    }
+
+    public synchronized String getUsername() {
+        updateCredentials();
+        return username;
+    }
+
+    public synchronized String getPassword() {
+        updateCredentials();
+        return password;
+    }
+
+    // private helper methods -------------------------------------------------
+
+    private synchronized void updateCredentials() {
+        File usersPropFile = new File(getServerDir(), "/conf/props/jmx-console-users.properties");
+        long lastModified = usersPropFile.lastModified();
+        if (lastModified == updateCredentialsTimestamp) {
+            LOGGER.log(Level.FINER, "Credentials are up-to-date.");
+            return;
+        }
+        Properties usersProps = new Properties();
+        try {
+            InputStream is = new BufferedInputStream(new FileInputStream(usersPropFile));
+            try {
+                usersProps.load(is);
+            } finally {
+                is.close();
+            }
+        } catch (FileNotFoundException e) {
+            LOGGER.log(Level.WARNING, usersPropFile + " not found.", e);
+            return;
+        } catch (IOException e) {
+            LOGGER.log(Level.WARNING, "Error while reading " + usersPropFile, e);
+            return;
+        }
+
+        Enumeration<String> names = NbCollections.checkedEnumerationByFilter(usersProps.propertyNames(), String.class,
+                false);
+        if (names.hasMoreElements()) {
+            username = names.nextElement();
+            password = usersProps.getProperty(username);
+        }
+
+        updateCredentialsTimestamp = lastModified;
+    }
+
+    /** Return URL representation of the specified file. */
+    private static URL fileToUrl(File file) throws MalformedURLException {
+        URL url = file.toURI().toURL();
+        if (FileUtil.isArchiveFile(url)) {
+            url = FileUtil.getArchiveRoot(url);
+        }
+        return url;
+    }
+}

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/util/GeronimoProperties.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/util/GeronimoProperties.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/util/GeronimoProperties.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/java/org/apache/geronimo/netbeans/util/GeronimoProperties.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/sandbox/geronimo-netbeans-plugin/src/main/nbm/manifest.mf
URL: http://svn.apache.org/viewvc/geronimo/sandbox/geronimo-netbeans-plugin/src/main/nbm/manifest.mf?view=auto&rev=549644
==============================================================================
--- geronimo/sandbox/geronimo-netbeans-plugin/src/main/nbm/manifest.mf (added)
+++ geronimo/sandbox/geronimo-netbeans-plugin/src/main/nbm/manifest.mf Thu Jun 21 16:18:31 2007
@@ -0,0 +1,5 @@
+Manifest-Version: 1.0
+OpenIDE-Module: org.apache.geronimo.netbeans/1
+OpenIDE-Module-Layer: org/apache/geronimo/netbeans/resources/layer.xml
+OpenIDE-Module-Localizing-Bundle: org/apache/geronimo/netbeans/resources/Bundle.properties
+OpenIDE-Module-Specification-Version: 1.0

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/nbm/manifest.mf
------------------------------------------------------------------------------
    svn:executable = *

Added: geronimo/sandbox/geronimo-netbeans-plugin/src/main/nbm/module.xml
URL: http://svn.apache.org/viewvc/geronimo/sandbox/geronimo-netbeans-plugin/src/main/nbm/module.xml?view=auto&rev=549644
==============================================================================
--- geronimo/sandbox/geronimo-netbeans-plugin/src/main/nbm/module.xml (added)
+++ geronimo/sandbox/geronimo-netbeans-plugin/src/main/nbm/module.xml Thu Jun 21 16:18:31 2007
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+-->
+
+<!-- $Rev$ $Date$ -->
+
+<nbm>
+  <moduleType>normal</moduleType>
+  <cluster>geronimo</cluster>
+  <manifest>src/main/nbm/manifest.mf</manifest>
+  <homepageUrl>http://geronimo.apache.org/devtools/netbeans</homepageUrl>
+  <distributionUrl>http://geronimo.apache.org/devtools/netbeans</distributionUrl>
+  <licenseName>Apache License, Version 2.0</licenseName>
+  <licenseFile>LICENSE.txt</licenseFile>
+  <dependencies>
+    <dependency>
+      <id>org.netbeans.api:org-netbeans-modules-j2eeapis</id>
+      <type>spec</type>
+    </dependency>
+    <dependency>
+      <id>org.netbeans.api:org-netbeans-modules-java-platform</id>
+      <type>spec</type>
+    </dependency>
+    <dependency>
+      <id>org.netbeans.api:org-netbeans-modules-j2eeserver</id>
+      <type>spec</type>
+    </dependency>
+    <dependency>
+      <id>org.netbeans.api:org-netbeans-modules-project-libraries</id>
+      <type>spec</type>
+    </dependency>
+    <dependency>
+      <id>org.codehaus.mevenide:debugger-bridge</id>
+      <type>spec</type>
+    </dependency>
+    <dependency>
+      <id>org.netbeans.api:org-netbeans-api-debugger-jpda</id>
+      <type>spec</type>
+    </dependency>
+    <dependency>
+      <id>org.netbeans.api:org-netbeans-api-debugger</id>
+      <type>spec</type>
+    </dependency>
+    <dependency>
+      <id>org.netbeans.api:org-netbeans-modules-options-api</id>
+      <type>spec</type>
+    </dependency>
+    <dependency>
+      <id>org.netbeans.api:org-openide-awt</id>
+      <type>spec</type>
+    </dependency>
+    <dependency>
+      <id>org.netbeans.api:org-openide-io</id>
+      <type>spec</type>
+    </dependency>
+    <dependency>
+      <id>org.netbeans.api:org-openide-dialogs</id>
+      <type>spec</type>
+    </dependency>
+    <dependency>
+      <id>org.netbeans.api:org-openide-execution</id>
+      <type>spec</type>
+    </dependency>
+    <dependency>
+      <id>org.netbeans.api:org-openide-modules</id>
+      <type>spec</type>
+    </dependency>
+    <dependency>
+      <id>org.netbeans.api:org-openide-nodes</id>
+      <type>spec</type>
+    </dependency>
+  </dependencies>
+</nbm>

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/nbm/module.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/nbm/module.xml
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/nbm/module.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: geronimo/sandbox/geronimo-netbeans-plugin/src/main/resources/org/apache/geronimo/netbeans/Bundle.properties
URL: http://svn.apache.org/viewvc/geronimo/sandbox/geronimo-netbeans-plugin/src/main/resources/org/apache/geronimo/netbeans/Bundle.properties?view=auto&rev=549644
==============================================================================
--- geronimo/sandbox/geronimo-netbeans-plugin/src/main/resources/org/apache/geronimo/netbeans/Bundle.properties (added)
+++ geronimo/sandbox/geronimo-netbeans-plugin/src/main/resources/org/apache/geronimo/netbeans/Bundle.properties Thu Jun 21 16:18:31 2007
@@ -0,0 +1,11 @@
+SERVER_NAME=Apache Geronimo 2.0
+LBL_FactoryVersion=Deployment Factory for Apache Geronimo 2.0 Plugin 
+
+MSG_DEPLOYING=Deploying {0}
+MSG_Waiting_For_Url=Waiting for server to start the module {0}
+MSG_Loading_Config=Error when loading configuration from file.
+
+MSG_FailedToCreateConfigFolder=The {0} folder could not be created.
+
+MSG_INVALID_URI=Invalid URI: {0}
+MSG_ERROR_CREATING_DM=Error during Deployment Manager creation.

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/resources/org/apache/geronimo/netbeans/Bundle.properties
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/resources/org/apache/geronimo/netbeans/Bundle.properties
------------------------------------------------------------------------------
    svn:executable = *

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/resources/org/apache/geronimo/netbeans/Bundle.properties
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/resources/org/apache/geronimo/netbeans/Bundle.properties
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/sandbox/geronimo-netbeans-plugin/src/main/resources/org/apache/geronimo/netbeans/config/Bundle.properties
URL: http://svn.apache.org/viewvc/geronimo/sandbox/geronimo-netbeans-plugin/src/main/resources/org/apache/geronimo/netbeans/config/Bundle.properties?view=auto&rev=549644
==============================================================================
--- geronimo/sandbox/geronimo-netbeans-plugin/src/main/resources/org/apache/geronimo/netbeans/config/Bundle.properties (added)
+++ geronimo/sandbox/geronimo-netbeans-plugin/src/main/resources/org/apache/geronimo/netbeans/config/Bundle.properties Thu Jun 21 16:18:31 2007
@@ -0,0 +1,30 @@
+MSG_invalidCP=Fixing invalid Context Path value\: {0}
+MSG_geronimoWebXmlNotValid=Currently edited geronimo-web.xml configuration file is in \
+an inconsistent state. Do you wish to override your changes?
+MSG_geronimoClientXmlNotValid=Currently edited geronimo-client.xml configuration file is in \
+an inconsistent state. Do you wish to override your changes?
+
+MSG_datasourcesXmlNotValid=Currently edited {0} configuration file is in \
+an inconsistent state. Do you wish to override your changes?
+
+MSG_datasourcesXmlCannotParse=Configuration file {0} is not parseable - cannot perform changes.
+
+ERR_WRONG_DEPLOY_DIR=Cannot read the data sources from the target server. The deployment directory \
+is not known or does not exist or is not readable.
+
+LBL_DS_JNDI=JNDI name
+LBL_DS_URL=database URL
+LBL_DS_USER=user
+LBL_DS_PASS=password
+LBL_DS_DRV=driver
+LBL_DS_MINPS=minimal pool size
+LBL_DS_MAXPS=maximal pool size
+LBL_DS_IDLE=idle timeout minutes
+
+LBL_DS_CONFLICT=Conflicting data sources found:
+
+LBL_MODULE=module
+LBL_SERVER=server
+
+ERR_CannotReadDSdotXml=Cannot read geronimo-FIXME.xml file on the server
+ERR_CannotCreateDSdotXml=Cannot create geronimo-FIXME-ds.xml file on the server

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/resources/org/apache/geronimo/netbeans/config/Bundle.properties
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/resources/org/apache/geronimo/netbeans/config/Bundle.properties
------------------------------------------------------------------------------
    svn:executable = *

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/resources/org/apache/geronimo/netbeans/config/Bundle.properties
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/resources/org/apache/geronimo/netbeans/config/Bundle.properties
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/sandbox/geronimo-netbeans-plugin/src/main/resources/org/apache/geronimo/netbeans/customizer/Bundle.properties
URL: http://svn.apache.org/viewvc/geronimo/sandbox/geronimo-netbeans-plugin/src/main/resources/org/apache/geronimo/netbeans/customizer/Bundle.properties?view=auto&rev=549644
==============================================================================
--- geronimo/sandbox/geronimo-netbeans-plugin/src/main/resources/org/apache/geronimo/netbeans/customizer/Bundle.properties (added)
+++ geronimo/sandbox/geronimo-netbeans-plugin/src/main/resources/org/apache/geronimo/netbeans/customizer/Bundle.properties Thu Jun 21 16:18:31 2007
@@ -0,0 +1,74 @@
+TXT_Tab_Classes=Classes
+TXT_Tab_Sources=Sources
+TXT_Tab_Javadoc=Javadoc
+
+TXT_JVM=&Java Platform\:
+TXT_ManagePlatforms=&Manage Platforms...
+TXT_NoteChangesTakeAffect=Note\: Changes will take affect the next time you start the server
+TXT_Platform=Platform
+TXT_VMOptions=&VM Options\:
+TXT_VMOptionsEG=(e.g. -Xms64m)
+
+ASCN_JVM=Java Platform
+
+ASCD_JavaPlatform=Java Virtual Machine the server will run on
+
+ASCN_ManagerPlatform=Manager Java Platform
+
+ASCN_VMOpts=VM Options
+
+ASCD_VMOpts=Java Virtual Machine options
+
+ASCN_VMOptEG=(e.g. -Xms64m)
+
+ASCD_VmOptsEG=VM Option example
+
+
+ASCN_Note=Note\: Changes will take affect the next time you start the server
+
+ASCD_Note=Note\: Changes will take affect the next time you start the server
+
+
+MNE_Proxy=x
+
+LBL_ManagePlatforms=Manager &Platform
+
+LBL_Proxy=Use IDE Proxy Settings
+ACS_Customizer=Customizer
+
+#CustomizerSupport
+TXT_Classes=Classes
+TXT_Javadoc=Javadoc
+TXT_OpenJavadoc=Add ZIP/Folder
+TXT_OpenSources=Add JAR/Folder
+TXT_Sources=Sources
+AD_Add=N/A
+AD_AddZip=N/A
+AD_Classes=Classes
+AD_Down=N/A
+AD_Javadoc=Javadocs
+AD_Remove=N/A
+AD_Sources=Sources
+AD_Up=N/A
+CTL_Add=Add JAR/Folder...
+CTL_AddJavadocURLMessage=URL:
+CTL_AddJavadocURLTitle=Add URL
+CTL_AddURL=Add URL...
+CTL_AddZip=Add ZIP/Folder...
+CTL_Cancel=Cancel
+CTL_Down=Move Down
+CTL_InvalidURLFormat=Invalid URL format.
+CTL_Remove=Remove
+CTL_Up=Move Up
+MNE_Add=J
+MNE_AddURL=U
+MNE_AddZip=Z
+MNE_Cancel=C
+MNE_Classes=C
+MNE_Down=D
+MNE_Javadoc=J
+MNE_OpenJavadoc=A
+MNE_OpenSources=A
+MNE_Remove=m
+MNE_Sources=o
+MNE_Up=U

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/resources/org/apache/geronimo/netbeans/customizer/Bundle.properties
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/resources/org/apache/geronimo/netbeans/customizer/Bundle.properties
------------------------------------------------------------------------------
    svn:executable = *

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/resources/org/apache/geronimo/netbeans/customizer/Bundle.properties
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/sandbox/geronimo-netbeans-plugin/src/main/resources/org/apache/geronimo/netbeans/customizer/Bundle.properties
------------------------------------------------------------------------------
    svn:mime-type = text/plain



Mime
View raw message