Mercurial > hg > release > thermostat-1.4
changeset 1794:ada97f948c3a
Show command channel process as Thermostat
PR 2623
Reviewed-by: aazores, jerboaa
Review-thread: http://icedtea.classpath.org/pipermail/thermostat/2015-September/016081.html
author | Omair Majid <omajid@redhat.com> |
---|---|
date | Tue, 15 Sep 2015 11:53:14 -0400 |
parents | 402637778588 |
children | a48bb736ff5e |
files | client/living-vm-filter/swing/src/main/java/com/redhat/thermostat/client/filter/host/swing/ThermostatVmMainLabelDecorator.java client/living-vm-filter/swing/src/test/java/com/redhat/thermostat/client/filter/host/swing/ThermostatVmMainLabelDecoratorTest.java distribution/scripts/thermostat-command-channel |
diffstat | 3 files changed, 42 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/client/living-vm-filter/swing/src/main/java/com/redhat/thermostat/client/filter/host/swing/ThermostatVmMainLabelDecorator.java Tue Sep 15 13:16:55 2015 -0400 +++ b/client/living-vm-filter/swing/src/main/java/com/redhat/thermostat/client/filter/host/swing/ThermostatVmMainLabelDecorator.java Tue Sep 15 11:53:14 2015 -0400 @@ -36,6 +36,9 @@ package com.redhat.thermostat.client.filter.host.swing; +import java.util.Set; +import java.util.TreeSet; + import com.redhat.thermostat.client.ui.ReferenceFieldLabelDecorator; import com.redhat.thermostat.storage.core.Ref; import com.redhat.thermostat.storage.core.VmRef; @@ -47,6 +50,17 @@ // duplicated in the startup scripts private static final String MAIN_CLASS = "com.redhat.thermostat.main.Thermostat"; + // duplicated in the startup scripts + private static final String COMMAND_CHANNEL_CLASS = + "com.redhat.thermostat.agent.command.server.internal.CommandChannelServerMain"; + + private static final Set<String> KNOWN_STARTUP_CLASSES; + + static { + KNOWN_STARTUP_CLASSES = new TreeSet<>(); + KNOWN_STARTUP_CLASSES.add(MAIN_CLASS); + KNOWN_STARTUP_CLASSES.add(COMMAND_CHANNEL_CLASS); + } private VmInfoDAO dao; @@ -57,12 +71,12 @@ @Override public String getLabel(String originalLabel, Ref reference) { - if (!(reference instanceof VmRef) || - !reference.getName().equals(MAIN_CLASS)) { + if (!(reference instanceof VmRef) || + !KNOWN_STARTUP_CLASSES.contains(reference.getName())) { return originalLabel; } VmInfo vmInfo = dao.getVmInfo((VmRef) reference); - if (!vmInfo.getMainClass().equals(MAIN_CLASS)) { + if (!KNOWN_STARTUP_CLASSES.contains(vmInfo.getMainClass())) { return originalLabel; } return createLabel(vmInfo); @@ -79,6 +93,18 @@ * @return the resulting string */ private String createLabel(VmInfo info) { + if (info.getMainClass().equals(COMMAND_CHANNEL_CLASS)) { + return createLabelForCommandChannel(info); + } + + return createLabelForRegularCommand(info); + } + + private String createLabelForCommandChannel(VmInfo info) { + return "Thermostat (command channel)"; + } + + private String createLabelForRegularCommand(VmInfo info) { String[] s = info.getJavaCommandLine().split("\\."); //escaped dot String afterDot = s[s.length - 1];
--- a/client/living-vm-filter/swing/src/test/java/com/redhat/thermostat/client/filter/host/swing/ThermostatVmMainLabelDecoratorTest.java Tue Sep 15 13:16:55 2015 -0400 +++ b/client/living-vm-filter/swing/src/test/java/com/redhat/thermostat/client/filter/host/swing/ThermostatVmMainLabelDecoratorTest.java Tue Sep 15 11:53:14 2015 -0400 @@ -53,6 +53,7 @@ public class ThermostatVmMainLabelDecoratorTest { private static final String THERMOSTAT_MAIN_CLASS = "com.redhat.thermostat.main.Thermostat"; + private static final String THERMOSTAT_COMMAND_CHANNEL_CLASS = "com.redhat.thermostat.agent.command.server.internal.CommandChannelServerMain"; private ThermostatVmMainLabelDecorator decorator; private VmInfoDAO dao; @@ -96,6 +97,17 @@ @Test + public void verifyLabelForCommandChannel() { + when(vmRef.getName()).thenReturn(THERMOSTAT_COMMAND_CHANNEL_CLASS); + when(info.getMainClass()).thenReturn(THERMOSTAT_COMMAND_CHANNEL_CLASS); + when(info.getJavaCommandLine()).thenReturn("com.redhat.thermostat.agent.command.server.internal.CommandChannelServerMain 127.0.0.1 1200"); + + decorator = new ThermostatVmMainLabelDecorator(dao); + String result = decorator.getLabel("originalLabel", vmRef); + assertEquals("Thermostat (command channel)", result); + } + + @Test public void verifyLabelForCliCommand() { when(vmRef.getName()).thenReturn(THERMOSTAT_MAIN_CLASS); when(info.getMainClass()).thenReturn(THERMOSTAT_MAIN_CLASS);
--- a/distribution/scripts/thermostat-command-channel Tue Sep 15 13:16:55 2015 -0400 +++ b/distribution/scripts/thermostat-command-channel Tue Sep 15 11:53:14 2015 -0400 @@ -63,6 +63,7 @@ BOOT_CLASSPATH="${BOOT_CLASSPATH}:${THERMOSTAT_LIBS}/netty-@netty.version@.jar" BOOT_CLASSPATH="${TOOLS_JAR}:${BOOT_CLASSPATH}" +# Duplicated in ThermostatVmMainLabelDecorator CMD_CHANNEL_CLASS="com.redhat.thermostat.agent.command.server.internal.CommandChannelServerMain" # Set this to remote debug