This is an automated email from the ASF dual-hosted git repository.

mbien pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/netbeans.git


The following commit(s) were added to refs/heads/master by this push:
     new 50978376cd Open the Payara Server's home and domain directory in 
Explorer
     new f7ffb538fb Merge pull request #6347 from jGauravGupta/FISH-7542
50978376cd is described below

commit 50978376cdbf2ca5c759088ca6344ce9d2edf421
Author: Gaurav Gupta <gaurav.gu...@payara.fish>
AuthorDate: Wed Aug 16 04:27:32 2023 +0530

    Open the Payara Server's home and domain directory in Explorer
---
 .../payara/common/actions/Bundle.properties        |   6 ++
 .../common/actions/OpenDomainDirectoryAction.java  | 106 +++++++++++++++++++++
 .../actions/OpenServerHomeDirectoryAction.java     | 104 ++++++++++++++++++++
 .../payara/common/nodes/Hk2InstanceNode.java       |   4 +
 4 files changed, 220 insertions(+)

diff --git 
a/enterprise/payara.common/src/org/netbeans/modules/payara/common/actions/Bundle.properties
 
b/enterprise/payara.common/src/org/netbeans/modules/payara/common/actions/Bundle.properties
index b7654e552f..903635b1b6 100644
--- 
a/enterprise/payara.common/src/org/netbeans/modules/payara/common/actions/Bundle.properties
+++ 
b/enterprise/payara.common/src/org/netbeans/modules/payara/common/actions/Bundle.properties
@@ -61,6 +61,12 @@ MSG_ServerMustBeRunning=The server must be running for this 
action to succeed.
 # View server log action
 CTL_ViewServerLogAction=View Domain Server &Log
 
+# Open domain directory action
+CTL_OpenDomainDirectoryAction=Open Domain Directory
+
+# Open server home directory action
+CTL_OpenServerHomeDirectoryAction=Open Server Home Directory
+
 # Properties action
 CTL_Properties=&Properties
 
diff --git 
a/enterprise/payara.common/src/org/netbeans/modules/payara/common/actions/OpenDomainDirectoryAction.java
 
b/enterprise/payara.common/src/org/netbeans/modules/payara/common/actions/OpenDomainDirectoryAction.java
new file mode 100644
index 0000000000..37c1bbd43d
--- /dev/null
+++ 
b/enterprise/payara.common/src/org/netbeans/modules/payara/common/actions/OpenDomainDirectoryAction.java
@@ -0,0 +1,106 @@
+/*
+ * 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.
+ */
+package org.netbeans.modules.payara.common.actions;
+
+import java.awt.Desktop;
+import java.io.File;
+import java.io.IOException;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import org.netbeans.modules.payara.common.PayaraInstance;
+import org.netbeans.modules.payara.common.PayaraLogger;
+import org.netbeans.modules.payara.tooling.utils.ServerUtils;
+import org.netbeans.modules.payara.spi.PayaraModule;
+import org.openide.awt.ActionID;
+import org.openide.awt.ActionRegistration;
+import org.openide.nodes.Node;
+import org.openide.util.HelpCtx;
+import org.openide.util.NbBundle;
+import org.openide.util.actions.NodeAction;
+
+
+/**
+ * This action will open the domain directory for the selected server instance.
+ *
+ * @author Gaurav Gupta
+ */
+@ActionID(id = 
"org.netbeans.modules.payara.common.actions.OpenDomainDirectoryAction", 
category = "Payara")
+@ActionRegistration(displayName = "#CTL_OpenDomainDirectoryAction", lazy = 
false)
+public class OpenDomainDirectoryAction extends NodeAction {
+
+    private static final Logger LOGGER
+            = PayaraLogger.get(OpenDomainDirectoryAction.class);
+    
+    @Override
+    protected void performAction(Node[] nodes) {
+        if (nodes != null && nodes.length > 0 && nodes[0] != null) {
+            PayaraModule commonSupport = 
nodes[0].getLookup().lookup(PayaraModule.class);
+            if (commonSupport != null && (commonSupport.getInstance() 
instanceof PayaraInstance)) {
+                PayaraInstance server = (PayaraInstance) 
commonSupport.getInstance();
+                String domainPath = ServerUtils.getDomainPath(server);
+                if (Desktop.isDesktopSupported()) {
+                    Desktop desktop = Desktop.getDesktop();
+                    File directory = new File(domainPath);
+
+                    if (directory.exists()) {
+                        try {
+                            desktop.open(directory);
+                        } catch (IOException e) {
+                            LOGGER.log(Level.INFO, "Error opening domain 
directory: {0}", e.getMessage());
+                        }
+                    } else {
+                        LOGGER.log(Level.INFO, "Domain directory does not 
exist: {0}", domainPath);
+                    }
+                } else {
+                    LOGGER.log(Level.INFO, "Desktop not supported for opening 
directory.");
+                }
+            }
+        }
+    }
+
+    @Override
+    protected boolean enable(Node[] nodes) {
+        if (nodes == null || nodes.length < 1 || nodes[0] == null) {
+            return false;
+        }
+        PayaraModule commonSupport = 
nodes[0].getLookup().lookup(PayaraModule.class);
+        if (commonSupport == null || !(commonSupport.getInstance() instanceof 
PayaraInstance)) {
+            return false;
+        }
+        PayaraInstance server = (PayaraInstance) commonSupport.getInstance();
+        String uri = server.getUrl();
+        return uri != null && uri.length() > 0
+                && !server.isRemote();
+    }
+
+    @Override
+    protected boolean asynchronous() {
+        return false;
+    }
+
+    @Override
+    public String getName() {
+        return NbBundle.getMessage(OpenDomainDirectoryAction.class, 
"CTL_OpenDomainDirectoryAction");
+    }
+
+    @Override
+    public HelpCtx getHelpCtx() {
+        return HelpCtx.DEFAULT_HELP;
+    }
+}
diff --git 
a/enterprise/payara.common/src/org/netbeans/modules/payara/common/actions/OpenServerHomeDirectoryAction.java
 
b/enterprise/payara.common/src/org/netbeans/modules/payara/common/actions/OpenServerHomeDirectoryAction.java
new file mode 100644
index 0000000000..baa37d0381
--- /dev/null
+++ 
b/enterprise/payara.common/src/org/netbeans/modules/payara/common/actions/OpenServerHomeDirectoryAction.java
@@ -0,0 +1,104 @@
+/*
+ * 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.
+ */
+package org.netbeans.modules.payara.common.actions;
+
+import java.awt.Desktop;
+import java.io.File;
+import java.io.IOException;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import org.netbeans.modules.payara.common.PayaraInstance;
+import org.netbeans.modules.payara.common.PayaraLogger;
+import org.netbeans.modules.payara.spi.PayaraModule;
+import org.openide.awt.ActionID;
+import org.openide.awt.ActionRegistration;
+import org.openide.nodes.Node;
+import org.openide.util.HelpCtx;
+import org.openide.util.NbBundle;
+import org.openide.util.actions.NodeAction;
+
+/**
+ * This action will open the server home directory for the selected server 
instance.
+ * 
+ * @author Gaurav Gupta
+ */
+@ActionID(id = 
"org.netbeans.modules.payara.common.actions.OpenServerHomeDirectoryAction", 
category = "Payara")
+@ActionRegistration(displayName = "#CTL_OpenServerHomeDirectoryAction", lazy = 
false)
+public class OpenServerHomeDirectoryAction extends NodeAction {
+
+    private static final Logger LOGGER
+            = PayaraLogger.get(OpenServerHomeDirectoryAction.class);
+    
+    @Override
+    protected void performAction(Node[] nodes) {
+        if (nodes != null && nodes.length > 0 && nodes[0] != null) {
+            PayaraModule commonSupport = 
nodes[0].getLookup().lookup(PayaraModule.class);
+            if (commonSupport != null && (commonSupport.getInstance() 
instanceof PayaraInstance)) {
+                PayaraInstance server = (PayaraInstance) 
commonSupport.getInstance();
+                String homePath = server.getServerHome();
+                if (Desktop.isDesktopSupported()) {
+                    Desktop desktop = Desktop.getDesktop();
+                    File directory = new File(homePath);
+
+                    if (directory.exists()) {
+                        try {
+                            desktop.open(directory);
+                        } catch (IOException e) {
+                            LOGGER.log(Level.INFO, "Error opening server home 
directory: {0}", e.getMessage());
+                        }
+                    } else {
+                        LOGGER.log(Level.INFO, "Server home directory does not 
exist: {0}", homePath);
+                    }
+                } else {
+                    LOGGER.log(Level.INFO, "Desktop not supported for opening 
directory.");
+                }
+            }
+        }
+    }
+
+    @Override
+    protected boolean enable(Node[] nodes) {
+        if (nodes == null || nodes.length < 1 || nodes[0] == null) {
+            return false;
+        }
+        PayaraModule commonSupport = 
nodes[0].getLookup().lookup(PayaraModule.class);
+        if (commonSupport == null || !(commonSupport.getInstance() instanceof 
PayaraInstance)) {
+            return false;
+        }
+        PayaraInstance server = (PayaraInstance) commonSupport.getInstance();
+        String uri = server.getUrl();
+        return uri != null && uri.length() > 0
+                && !server.isRemote();
+    }
+
+    @Override
+    protected boolean asynchronous() {
+        return false;
+    }
+
+    @Override
+    public String getName() {
+        return NbBundle.getMessage(OpenServerHomeDirectoryAction.class, 
"CTL_OpenServerHomeDirectoryAction");
+    }
+
+    @Override
+    public HelpCtx getHelpCtx() {
+        return HelpCtx.DEFAULT_HELP;
+    }
+}
diff --git 
a/enterprise/payara.common/src/org/netbeans/modules/payara/common/nodes/Hk2InstanceNode.java
 
b/enterprise/payara.common/src/org/netbeans/modules/payara/common/nodes/Hk2InstanceNode.java
index a72604af15..bac9df116c 100644
--- 
a/enterprise/payara.common/src/org/netbeans/modules/payara/common/nodes/Hk2InstanceNode.java
+++ 
b/enterprise/payara.common/src/org/netbeans/modules/payara/common/nodes/Hk2InstanceNode.java
@@ -35,6 +35,8 @@ import 
org.netbeans.modules.payara.common.actions.StartServerAction;
 import org.netbeans.modules.payara.common.actions.StopServerAction;
 import org.netbeans.modules.payara.common.actions.ViewAdminConsoleAction;
 import org.netbeans.modules.payara.common.actions.ViewServerLogAction;
+import org.netbeans.modules.payara.common.actions.OpenDomainDirectoryAction;
+import 
org.netbeans.modules.payara.common.actions.OpenServerHomeDirectoryAction;
 import org.netbeans.modules.payara.common.nodes.actions.RefreshModulesAction;
 import org.netbeans.modules.payara.common.nodes.actions.RefreshModulesCookie;
 import org.openide.nodes.AbstractNode;
@@ -176,6 +178,8 @@ public class Hk2InstanceNode extends AbstractNode 
implements ChangeListener { //
             null,
             SystemAction.get(ViewAdminConsoleAction.class),
             SystemAction.get(ViewServerLogAction.class),
+            SystemAction.get(OpenDomainDirectoryAction.class),
+            SystemAction.get(OpenServerHomeDirectoryAction.class),
             null,
             SystemAction.get(PropertiesAction.class)
         };


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@netbeans.apache.org
For additional commands, e-mail: commits-h...@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists

Reply via email to