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