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