From a328dfb3782ab4d351a28c28e29f5ad3c62fe0db Mon Sep 17 00:00:00 2001 From: Kris De Volder Date: Fri, 20 Oct 2017 15:13:41 -0700 Subject: [PATCH] More code for testing SpringBootApp JMX client --- .../commons/boot/app/cli/SpringBootApp.java | 26 ++++++++++++++++++ .../boot/app/cli/SpringBootAppTest.java | 9 ++++++ ...nt-20-thin-test-subject-0.0.1-SNAPSHOT.jar | Bin 0 -> 10720 bytes 3 files changed, 35 insertions(+) create mode 100644 headless-services/commons/commons-boot-app-cli/src/test/resources/actuator-client-20-thin-test-subject-0.0.1-SNAPSHOT.jar diff --git a/headless-services/commons/commons-boot-app-cli/src/main/java/org/springframework/ide/vscode/commons/boot/app/cli/SpringBootApp.java b/headless-services/commons/commons-boot-app-cli/src/main/java/org/springframework/ide/vscode/commons/boot/app/cli/SpringBootApp.java index 4d33ccc00..e785b11de 100644 --- a/headless-services/commons/commons-boot-app-cli/src/main/java/org/springframework/ide/vscode/commons/boot/app/cli/SpringBootApp.java +++ b/headless-services/commons/commons-boot-app-cli/src/main/java/org/springframework/ide/vscode/commons/boot/app/cli/SpringBootApp.java @@ -11,10 +11,13 @@ package org.springframework.ide.vscode.commons.boot.app.cli; import java.io.File; +import java.io.IOException; +import java.io.PrintStream; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Map.Entry; import java.util.Properties; import java.util.Set; import java.util.StringTokenizer; @@ -349,4 +352,27 @@ public class SpringBootApp { public String toString() { return "SpringBootApp [" +vmd.id() + ", "+vmd.displayName()+"]"; } + + /** + * For testing / investigation purposes. Dumps out as much information as possible + * that can be onbtained from the jvm, without accessing JMX. + */ + public void dumpJvmInfo() throws IOException { + System.out.println("--- vm infos ----"); + System.out.println("id = "+vm.id()); + System.out.println("displayName = "+vmd.displayName()); + dump("agentProperties", vm.getAgentProperties()); + dump("systemProps", vm.getSystemProperties()); + System.out.println("-----------------"); + } + + private void dump(String name, Properties props) { + System.out.println(name + " = {"); + for (Entry prop : props.entrySet()) { + System.out.println(" "+prop.getKey()+" = "+prop.getValue()); + } + System.out.println("}"); + } + + } diff --git a/headless-services/commons/commons-boot-app-cli/src/test/java/org/springframework/ide/vscode/commons/boot/app/cli/SpringBootAppTest.java b/headless-services/commons/commons-boot-app-cli/src/test/java/org/springframework/ide/vscode/commons/boot/app/cli/SpringBootAppTest.java index 4964bdc50..1affdbc8f 100644 --- a/headless-services/commons/commons-boot-app-cli/src/test/java/org/springframework/ide/vscode/commons/boot/app/cli/SpringBootAppTest.java +++ b/headless-services/commons/commons-boot-app-cli/src/test/java/org/springframework/ide/vscode/commons/boot/app/cli/SpringBootAppTest.java @@ -34,6 +34,7 @@ public class SpringBootAppTest { // private static final String appName = "actuator-client-15-test-subject"; // Boot 1.5 test app private static final String appName = "actuator-client-20-test-subject"; //Boot 2.0 test app +// private static final String appName = "actuator-client-20-thin-test-subject"; //Boot 2.0 test app with THIN launcher private static final Duration TIMEOUT = Duration.ofSeconds(30); // in CI build starting the app takes longer than 10s sometimes. //Output from CI build: Started ActuatorClientTestSubjectApplication in 22.962 seconds (JVM running for 26.028) @@ -77,6 +78,14 @@ public class SpringBootAppTest { Optional myProcess = allApps.values().stream().filter(app -> app.getProcessName().contains(appName)).findAny(); assertTrue(myProcess.isPresent()); } + + @Test + public void dumpJvmInfo() throws Exception { + ACondition.waitFor(TIMEOUT, this::getRequestMappings); + testApp.dumpJvmInfo(); +// SpringBootApp app = getAppContaining("language-server.jar"); +// app.dumpJvmInfo(); + } @Ignore //Failing... not sure how to fix. @Test public void getAllBootApps() throws Exception { diff --git a/headless-services/commons/commons-boot-app-cli/src/test/resources/actuator-client-20-thin-test-subject-0.0.1-SNAPSHOT.jar b/headless-services/commons/commons-boot-app-cli/src/test/resources/actuator-client-20-thin-test-subject-0.0.1-SNAPSHOT.jar new file mode 100644 index 0000000000000000000000000000000000000000..addf9f5b633cff7710c27c913fdedf411d17830b GIT binary patch literal 10720 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�R zb-H>#6ZtjpQxj<-sB;-&2}}lDK)Im2YlN55_ImZXEpaM*Pp2!Nt}Reiw`-?lmBp}P zsztu3;zR>E;17ExFN4DOJ$>6dtIAAu#oI!y^Pk0vCIawgbYZ6WlPkmHsC9 z=s@#p+?5Q>jqw!%m3qhp+^x^Rg`=of>}V@x8OZAT2ZcQ2J#E9@lQk7$zWTNtU~iKJ z#>N`x0crQ)$9nwvpzv8bf)$u*!EMWD?CG=f616Jg>k98Av)uZPmp8276yfhdJcim< zjGS!?i0jYoCR{kgM)1!<@Jgxu&=Z(Ro6u&wlC{U7?#bo121fsQ2t3(FO_x7%WnDMz^6jiUykex5DQOc9D#>aBa~qKTdAH^JV_IVgeoyn#CCTUsrk zxvKoCl}hy-)}jVS^>WT?&RzbSMR&2P%~*otds_bu1z6RLnt}{dH%@tbD0zFbtEFm} z6uAu>mLgp~t>!a3BDyS=h7X)h3`HwY+sn3_irSJWhzjTi*EO+F^t4{qLfCOFHG0AI z_$$TjH3jq*Nb^(r{UO-4Or5ju8LIXB_pr+effxGycTRlWAr7F5BGlob?mlx@3NIcK z-7{%5q4&V~U{Kjwoa8Y+f>lFrIiB);{q!cw9f_0W*|2M#8@lAKvYm7$pUJ6M$o+?J zjS5*TU&OJb2Cta>)`$YSSoDIo5jXr+qvDL0b4zc}Wa~a~KSYKRxMTWCon0ke-1%*R zn^(g47i8tux)3J2e>nf@nD(wv_sE^z!>8_C4Vk_U5i(dxo7MvvD`ux*Ds0$K(88kx zU%oLkI~}qwn>-6k`_4_4ewes}UnQp*;IXv=U|R*)SSQA)W@IIr2A^dL$FNZfUbM%* zZjwH9?oi{_RnIaP;^q2+02f{Vl6I literal 0 HcmV?d00001