From 5b3dbdb6c09de355114689e98a7fb7e1ae3697d4 Mon Sep 17 00:00:00 2001 From: Martin Lippert Date: Mon, 15 May 2017 15:17:40 +0200 Subject: [PATCH] PT #143653925: added third option, now trying tomcat jmx bean to get port, too --- .../boot/app/cli/SpringBootAppCLI.java | 36 ++++++++++++++----- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/headless-services/commons/commons-boot-app-cli/src/main/java/org/springframework/ide/vscode/commons/boot/app/cli/SpringBootAppCLI.java b/headless-services/commons/commons-boot-app-cli/src/main/java/org/springframework/ide/vscode/commons/boot/app/cli/SpringBootAppCLI.java index 97ead26c7..a70016a16 100644 --- a/headless-services/commons/commons-boot-app-cli/src/main/java/org/springframework/ide/vscode/commons/boot/app/cli/SpringBootAppCLI.java +++ b/headless-services/commons/commons-boot-app-cli/src/main/java/org/springframework/ide/vscode/commons/boot/app/cli/SpringBootAppCLI.java @@ -15,6 +15,7 @@ import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Properties; +import java.util.Set; import java.util.StringTokenizer; import javax.management.InstanceNotFoundException; @@ -114,9 +115,14 @@ public class SpringBootAppCLI { if (port != null) { return port; } - else { - return getPortViaActuator(connection); + + port = getPortViaActuator(connection); + if (port != null) { + return port; } + + port = getPortViaTomcatBean(connection); + return port; } private static String getPortViaAdmin(MBeanServerConnection connection) throws Exception { @@ -135,7 +141,11 @@ public class SpringBootAppCLI { private static String getPortViaActuator(MBeanServerConnection connection) throws Exception { try { - String environment = getEnvironment(connection); + String DEFAULT_OBJECT_NAME = "org.springframework.boot:type=Endpoint,name=environmentEndpoint"; + ObjectName objectName = new ObjectName(DEFAULT_OBJECT_NAME); + + Object result = connection.getAttribute(objectName, "Data"); + String environment = new ObjectMapper().writeValueAsString(result); System.out.println("Environment: " + environment); JSONObject env = new JSONObject(environment); @@ -153,12 +163,22 @@ public class SpringBootAppCLI { return null; } - private static String getEnvironment(MBeanServerConnection connection) throws Exception { - String DEFAULT_OBJECT_NAME = "org.springframework.boot:type=Endpoint,name=environmentEndpoint"; - ObjectName objectName = new ObjectName(DEFAULT_OBJECT_NAME); + private static String getPortViaTomcatBean(MBeanServerConnection connection) throws Exception { + try { + Set queryNames = connection.queryNames(null, null); + + for (ObjectName objectName : queryNames) { + if (objectName.toString().startsWith("Tomcat:type=Connector")) { + Object result = connection.getAttribute(objectName, "localPort"); + System.out.println("localpost: " + result.toString()); + } + } + } + catch (InstanceNotFoundException e) { + System.out.println("another bean not found"); + } - Object result = connection.getAttribute(objectName, "Data"); - return new ObjectMapper().writeValueAsString(result); + return null; } }