Index: cluster/cli/src/main/java/com/sun/enterprise/admin/cli/cluster/CreateLocalInstanceCommand.java =================================================================== --- cluster/cli/src/main/java/com/sun/enterprise/admin/cli/cluster/CreateLocalInstanceCommand.java (revision 43606) +++ cluster/cli/src/main/java/com/sun/enterprise/admin/cli/cluster/CreateLocalInstanceCommand.java (working copy) @@ -124,17 +124,16 @@ validateNode(node, getProductRootPath(), getInstanceHostName(true)); } + if (!rendezvousWithDAS()) { + throw new CommandException( + Strings.get("Instance.rendezvousFailed", DASHost, "" + DASPort)); + } + setDomainName(); setDasDefaultsOnly = false; super.validate(); // instanceName is validated and set in super.validate(), directories created INSTANCE_DOTTED_NAME = "servers.server." + instanceName; RENDEZVOUS_DOTTED_NAME = INSTANCE_DOTTED_NAME + ".property." + RENDEZVOUS_PROPERTY_NAME; - if (!rendezvousWithDAS()) { - instanceDir.delete(); - throw new CommandException( - Strings.get("Instance.rendezvousFailed", DASHost, "" + DASPort)); - } - _rendezvousOccurred = rendezvousOccurred(); if (_rendezvousOccurred) { throw new CommandException( @@ -438,6 +437,12 @@ return instanceHostName; } + private void setDomainName() throws CommandException { + RemoteCommand rc = new RemoteCommand("_get-runtime-info", this.programOpts, this.env); + Map map = rc.executeAndReturnAttributes("_get-runtime-info", "--target", "server"); + this.domainName = map.get("domain_name_value"); + } + @Override protected boolean mkdirs(File f) { if (setDasDefaultsOnly) { Index: cluster/cli/src/main/java/com/sun/enterprise/admin/cli/cluster/LocalInstanceCommand.java =================================================================== --- cluster/cli/src/main/java/com/sun/enterprise/admin/cli/cluster/LocalInstanceCommand.java (revision 43606) +++ cluster/cli/src/main/java/com/sun/enterprise/admin/cli/cluster/LocalInstanceCommand.java (working copy) @@ -100,6 +100,7 @@ protected File nodeDirRoot; // the parent dir of all node(s) protected File nodeDirChild; // the specific node dir protected File instanceDir; // the specific instance dir + protected String domainName; private InstanceDirs instanceDirs; @Override @@ -491,7 +492,7 @@ } String hostname = InetAddress.getLocalHost().getHostName(); if (hostname.equals(dashost) || NetUtils.isThisHostLocal(dashost)) { - hostname = "localhost"; + hostname = "localhost" + "-" + domainName; } File f = new File(parent, hostname); Index: cluster/admin/src/main/java/com/sun/enterprise/v3/admin/cluster/CreateNodeSshCommand.java =================================================================== --- cluster/admin/src/main/java/com/sun/enterprise/v3/admin/cluster/CreateNodeSshCommand.java (revision 43606) +++ cluster/admin/src/main/java/com/sun/enterprise/v3/admin/cluster/CreateNodeSshCommand.java (working copy) @@ -276,7 +276,7 @@ int exit = -1; List fullcommand = new ArrayList(); - String installDir = nodes.getNode("localhost").getInstallDirUnixStyle() + "/glassfish"; + String installDir = nodes.getDefaultLocalNode().getInstallDirUnixStyle() + "/glassfish"; if (!StringUtils.ok(installDir)) { throw new IllegalArgumentException(Strings.get("create.node.ssh.no.installdir")); } Index: cluster/admin/src/main/java/com/sun/enterprise/v3/admin/cluster/DeleteNodeSshCommand.java =================================================================== --- cluster/admin/src/main/java/com/sun/enterprise/v3/admin/cluster/DeleteNodeSshCommand.java (revision 43606) +++ cluster/admin/src/main/java/com/sun/enterprise/v3/admin/cluster/DeleteNodeSshCommand.java (working copy) @@ -243,7 +243,7 @@ int exit = -1; List fullcommand = new ArrayList(); - String installDir = nodes.getNode("localhost").getInstallDirUnixStyle() + "/glassfish"; + String installDir = nodes.getDefaultLocalNode().getInstallDirUnixStyle() + "/glassfish"; if (!StringUtils.ok(installDir)) { throw new IllegalArgumentException(Strings.get("create.node.ssh.no.installdir")); } Index: orb/orb-iiop/src/main/java/org/glassfish/enterprise/iiop/impl/IiopFolbGmsClient.java =================================================================== --- orb/orb-iiop/src/main/java/org/glassfish/enterprise/iiop/impl/IiopFolbGmsClient.java (revision 43606) +++ orb/orb-iiop/src/main/java/org/glassfish/enterprise/iiop/impl/IiopFolbGmsClient.java (working copy) @@ -345,7 +345,9 @@ String hostName = null ; String nodeName = server.getNodeRef() ; - if (nodeName.equals("localhost")) { + Node node = null; + if (nodes != null) nodes.getNode(nodeName); + if (node != null && node.isLocal()) { try { hostName = InetAddress.getLocalHost().getHostName() ; } catch (UnknownHostException exc) { @@ -353,7 +355,6 @@ exc ) ; } } else if (nodes != null) { - Node node = nodes.getNode(nodeName) ; if (node != null) { hostName = node.getNodeHost() ; } Index: core/logging/src/main/java/com/sun/enterprise/server/logging/commands/CollectLogFiles.java =================================================================== --- core/logging/src/main/java/com/sun/enterprise/server/logging/commands/CollectLogFiles.java (revision 43606) +++ core/logging/src/main/java/com/sun/enterprise/server/logging/commands/CollectLogFiles.java (working copy) @@ -42,6 +42,7 @@ import com.sun.common.util.logging.LoggingConfigImpl; import com.sun.enterprise.config.serverbeans.Domain; +import com.sun.enterprise.config.serverbeans.Node; import com.sun.enterprise.config.serverbeans.Server; import com.sun.enterprise.server.logging.logviewer.backend.LogFilterForInstance; import com.sun.enterprise.util.LocalStringManagerImpl; @@ -203,6 +204,7 @@ String instanceName = targetServer.getName(); String serverNode = targetServer.getNodeRef(); + Node node = domain.getNodes().getNode(serverNode); File tempDirectory = null; String zipFile = ""; File targetDir = null; @@ -221,7 +223,7 @@ } try { - if (serverNode.equals("localhost") || serverNode.equals("127.0.0.1")) { + if (node.isLocal()) { String sourceDir = env.getInstanceRoot().getAbsolutePath() + File.separator + ".." + File.separator + ".." + File.separator + "nodes" + File.separator + serverNode + File.separator + instanceName + File.separator + "logs"; @@ -310,11 +312,12 @@ // downloading log files for all instances which is part of cluster under temp directory. String instanceName = instance.getName(); String serverNode = instance.getNodeRef(); + Node node = domain.getNodes().getNode(serverNode); boolean errorOccur = false; instanceCount++; try { - if (serverNode.equals("localhost") || serverNode.equals("127.0.0.1")) { + if (node.isLocal()) { String sourceDir = env.getInstanceRoot().getAbsolutePath() + File.separator + ".." + File.separator + ".." + File.separator + "nodes" + File.separator + serverNode + File.separator + instanceName + File.separator + "logs"; Index: core/logging/src/main/java/com/sun/enterprise/server/logging/logviewer/backend/LogFilterForInstance.java =================================================================== --- core/logging/src/main/java/com/sun/enterprise/server/logging/logviewer/backend/LogFilterForInstance.java (revision 43606) +++ core/logging/src/main/java/com/sun/enterprise/server/logging/logviewer/backend/LogFilterForInstance.java (working copy) @@ -153,10 +153,11 @@ // helper method to get all log file names for given instance String sNode = targetServer.getNodeRef(); + Node node = domain.getNodes().getNode(sNode); Vector instanceLogFileNames = new Vector(); Vector instanceLogFileNamesAsString = new Vector(); - if (sNode.equals("localhost") || sNode.equals("127.0.0.1")) { + if (node.isLocal()) { String sourceDir = System.getProperty("com.sun.aas.instanceRoot") + File.separator + ".." + File.separator + ".." + File.separator + "nodes" + File.separator + sNode + File.separator + instanceName + File.separator + "logs"; @@ -179,8 +180,6 @@ } else { SSHLauncher sshL = getSSHL(habitat); - Nodes nodes = domain.getNodes(); - Node node = nodes.getNode(sNode); sshL.init(node, logger); SFTPClient sftpClient = sshL.getSFTPClient(); Index: core/logging/src/main/java/com/sun/enterprise/server/logging/logviewer/backend/LogFilter.java =================================================================== --- core/logging/src/main/java/com/sun/enterprise/server/logging/logviewer/backend/LogFilter.java (revision 43606) +++ core/logging/src/main/java/com/sun/enterprise/server/logging/logviewer/backend/LogFilter.java (working copy) @@ -41,6 +41,7 @@ package com.sun.enterprise.server.logging.logviewer.backend; import com.sun.enterprise.config.serverbeans.Domain; +import com.sun.enterprise.config.serverbeans.Node; import com.sun.enterprise.config.serverbeans.Server; import com.sun.enterprise.util.StringUtils; import com.sun.enterprise.util.SystemPropertyConstants; @@ -237,9 +238,9 @@ // Right now user needs to go through this URL to setup and configure ssh http://wikis.sun.com/display/GlassFish/3.1SSHSetup String serverNode = targetServer.getNodeRef(); + Node node = domain.getNodes().getNode(serverNode); + if (node.isLocal()) { - if (serverNode.equals("localhost") || serverNode.equals("127.0.0.1")) { - instanceLogFile = new File(env.getInstanceRoot().getAbsolutePath() + File.separator + ".." + File.separator + ".." + File.separator + "nodes" + File.separator + serverNode + File.separator + instanceName + File.separator + "logs" + File.separator + logFileName); Index: packager/nucleus-base/lib/templates/domain.xml =================================================================== --- packager/nucleus-base/lib/templates/domain.xml (revision 43606) +++ packager/nucleus-base/lib/templates/domain.xml (working copy) @@ -66,7 +66,7 @@ - + Index: admin/config-api/src/main/java/com/sun/enterprise/config/serverbeans/Domain.java =================================================================== --- admin/config-api/src/main/java/com/sun/enterprise/config/serverbeans/Domain.java (revision 43606) +++ admin/config-api/src/main/java/com/sun/enterprise/config/serverbeans/Domain.java (working copy) @@ -70,6 +70,8 @@ */ public interface Domain extends ConfigBeanProxy, Injectable, PropertyBag, SystemPropertyBag { + public static final String DOMAIN_NAME_PROPERTY = "administrative.domain.name"; + /** * Gets the value of the applicationRoot property. * @@ -387,9 +389,11 @@ @PropertiesDesc(props={}) @Element List getProperty(); - @DuckTyped + String getName(); + + @DuckTyped List getAllDefinedSystemApplications(); @DuckTyped @@ -487,6 +491,9 @@ List getClustersOnNode(String nodeName); class Duck { + public static String getName(Domain domain) { + return domain.getPropertyValue(DOMAIN_NAME_PROPERTY); + } /* return an empty list if given garbage -- or errors are encountered * or if no matches */ Index: admin/config-api/src/main/java/com/sun/enterprise/config/serverbeans/Node.java =================================================================== --- admin/config-api/src/main/java/com/sun/enterprise/config/serverbeans/Node.java (revision 43606) +++ admin/config-api/src/main/java/com/sun/enterprise/config/serverbeans/Node.java (working copy) @@ -209,6 +209,13 @@ boolean nodeInUse(); /** + * True if this is the default local node. Example: localhost-domain1 + * @return + */ + @DuckTyped + boolean isDefaultLocalNode(); + + /** * True if the node's nodeHost is local to this * @return */ @@ -255,9 +262,20 @@ return nodeDirAbsolute.replaceAll("\\\\","/"); } + public static boolean isDefaultLocalNode(Node node) { + Dom serverDom = Dom.unwrap(node); + Domain domain = serverDom.getHabitat().getComponent(Domain.class); + if (node.getName().equals("localhost-" + domain.getName())) { + return true; + } + return false; + } + public static boolean isLocal(Node node) { // Short circuit common case for efficiency - if (node.getName().equals("localhost")) { + Dom serverDom = Dom.unwrap(node); + Domain domain = serverDom.getHabitat().getComponent(Domain.class); + if (node.getName().equals("localhost-" + domain.getName())) { return true; } String nodeHost = node.getNodeHost(); @@ -404,7 +422,7 @@ final ActionReport report = context.getActionReport(); String nodeName = child.getName(); - if (nodeName.equals("localhost")) { // can't delete localhost node + if (nodeName.equals("localhost-" + domain.getName())) { // can't delete localhost node final String msg = localStrings.getLocalString( "Node.localhost", "Cannot remove Node {0}. ",child.getName() ); Index: admin/config-api/src/main/java/com/sun/enterprise/config/serverbeans/Nodes.java =================================================================== --- admin/config-api/src/main/java/com/sun/enterprise/config/serverbeans/Nodes.java (revision 43606) +++ admin/config-api/src/main/java/com/sun/enterprise/config/serverbeans/Nodes.java (working copy) @@ -43,6 +43,7 @@ import org.glassfish.api.I18n; import org.glassfish.config.support.*; import org.jvnet.hk2.config.Configured; +import org.jvnet.hk2.config.Dom; import org.jvnet.hk2.config.Element; import org.jvnet.hk2.config.ConfigBeanProxy; import org.jvnet.hk2.component.Injectable; @@ -71,6 +72,13 @@ public List getNode(); + /** + * Return the default local node, localhost-, or null if no such node exists. + * + * @return the Node object, or null if no such node + */ + @DuckTyped + public Node getDefaultLocalNode(); /** * Return the node with the given name, or null if no such node exists. @@ -93,5 +101,19 @@ } return null; } + + public static Node getDefaultLocalNode(Nodes nodes) { + if (nodes == null) { + return null; + } + Dom serverDom = Dom.unwrap(nodes); + Domain domain = serverDom.getHabitat().getComponent(Domain.class); + for (Node node : nodes.getNode()) { + if (node.getName().equals("localhost-"+domain.getName())) { + return node; + } + } + return null; + } } } Index: admin/config-api/src/main/java/com/sun/enterprise/config/util/ServerHelper.java =================================================================== --- admin/config-api/src/main/java/com/sun/enterprise/config/util/ServerHelper.java (revision 43606) +++ admin/config-api/src/main/java/com/sun/enterprise/config/util/ServerHelper.java (working copy) @@ -107,6 +107,7 @@ } Dom serverDom = Dom.unwrap(server); + Domain domain = serverDom.getHabitat().getComponent(Domain.class); Nodes nodes = serverDom.getHabitat().getComponent(Nodes.class); ServerEnvironment env = serverDom.getHabitat().getComponent(ServerEnvironment.class); @@ -132,7 +133,7 @@ } // XXX Hack to get around the fact that the default localhost // node entry is malformed - if (hostName == null && nodeName.equals("localhost")) { + if (hostName == null && nodeName.equals("localhost-" + domain.getName())) { hostName = "localhost"; } } Index: admin/rest/src/test/java/org/glassfish/admin/rest/ApplicationTest.java =================================================================== --- admin/rest/src/test/java/org/glassfish/admin/rest/ApplicationTest.java (revision 43606) +++ admin/rest/src/test/java/org/glassfish/admin/rest/ApplicationTest.java (working copy) @@ -154,7 +154,7 @@ }}; Map newInstance = new HashMap() {{ put("id", instanceName); - put("node", "localhost"); + put("node", "localhost-domain1"); }}; Map applicationRef = new HashMap() {{ put("id", appName); Index: jms/jms-core/src/main/java/com/sun/enterprise/connectors/jms/system/MQAddressList.java =================================================================== --- jms/jms-core/src/main/java/com/sun/enterprise/connectors/jms/system/MQAddressList.java (revision 43606) +++ jms/jms-core/src/main/java/com/sun/enterprise/connectors/jms/system/MQAddressList.java (working copy) @@ -174,7 +174,7 @@ { if (node.getNodeHost() != null) return node.getNodeHost(); //localhostNode - else if ("localhost".equals(node.getName())) + else if (node.isDefaultLocalNode()) { String hostName = getHostNameFromDasProperties(); if ("localhost".equals(hostName)) Index: admingui/common/src/main/java/org/glassfish/admingui/common/handlers/ClusterHandler.java =================================================================== --- admingui/common/src/main/java/org/glassfish/admingui/common/handlers/ClusterHandler.java (revision 43606) +++ admingui/common/src/main/java/org/glassfish/admingui/common/handlers/ClusterHandler.java (working copy) @@ -244,7 +244,9 @@ for (Map oneRow : rows) { String nodeName = (String) oneRow.get("name"); - if (nodeName.equals("localhost")){ + //TODO fix + //if (nodeName.equals("localhost-" + domainName)){ + if (nodeName.startsWith("localhost-")){ GuiUtil.prepareAlert("error", GuiUtil.getMessage("msg.Error"), GuiUtil.getMessage(CLUSTER_RESOURCE_NAME, "node.error.removeLocalhost")); return; Index: admingui/devtests/src/test/java/org/glassfish/admingui/devtests/StandaloneTest.java =================================================================== --- admingui/devtests/src/test/java/org/glassfish/admingui/devtests/StandaloneTest.java (revision 43606) +++ admingui/devtests/src/test/java/org/glassfish/admingui/devtests/StandaloneTest.java (working copy) @@ -72,7 +72,7 @@ assertTrue(selenium.isTextPresent(instanceName)); assertEquals(instanceName, selenium.getText(prefix + "col1:link")); assertEquals(instanceName+"-config", selenium.getText(prefix + "col3:configlink")); - assertEquals("localhost", selenium.getText(prefix + "col5:nodeAgentlink")); + assertEquals("localhost-domain1", selenium.getText(prefix + "col5:nodeAgentlink")); assertEquals("Stopped", selenium.getText(prefix + "col6")); assertEquals("100", selenium.getValue(prefix + "col2:weight"));