Skip to content

Commit d71b1a1

Browse files
committed
feat: Show basic information messages
Agent now prints "starting" and "appmap saved" messages on stdout unless appmap.silent is set.
1 parent f051f46 commit d71b1a1

File tree

8 files changed

+29
-8
lines changed

8 files changed

+29
-8
lines changed

agent/src/main/java/com/appland/appmap/Agent.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import java.util.jar.JarEntry;
1818
import java.util.jar.JarFile;
1919

20+
import com.appland.appmap.util.Logger;
2021
import org.apache.commons.io.FilenameUtils;
2122
import org.apache.commons.io.IOUtils;
2223
import org.tinylog.TaggedLogger;
@@ -66,8 +67,10 @@ public static void premain(String agentArgs, Instrumentation inst) {
6667
"To disable the automatic creation of this log file, set the system property {} to 'true'",
6768
Properties.DISABLE_LOG_FILE_KEY);
6869
}
70+
String implementationVersion = Agent.class.getPackage().getImplementationVersion();
71+
Logger.printUserMessage("AppMap agent version %s starting\n", implementationVersion);
6972
logger.info("Agent version {}, current time mills: {}",
70-
Agent.class.getPackage().getImplementationVersion(), start);
73+
implementationVersion, start);
7174
logger.info("config: {}", AppMapConfig.get());
7275
logger.info("System properties: {}", System.getProperties());
7376
logger.debug(new Exception(), "whereAmI");

agent/src/main/java/com/appland/appmap/config/Properties.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@
99
public class Properties {
1010
public static final String APPMAP_OUTPUT_DIRECTORY_KEY = "appmap.output.directory";
1111
public static final String DISABLE_LOG_FILE_KEY = "appmap.disableLogFile";
12+
13+
public static final Boolean Silent = resolveProperty("appmap.silent", false);
14+
1215
public static final Boolean DisableLogFile = resolveProperty(DISABLE_LOG_FILE_KEY, true);
1316
public static final Boolean Debug = resolveProperty("appmap.debug", false);
1417
public static final Boolean DebugHooks = Debug || (System.getProperty("appmap.debug.hooks") != null);

agent/src/main/java/com/appland/appmap/record/Recording.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import java.util.List;
1919
import java.util.function.Function;
2020

21+
import com.appland.appmap.util.Logger;
2122
import org.tinylog.TaggedLogger;
2223

2324
import com.appland.appmap.config.AppMapConfig;
@@ -94,6 +95,7 @@ public Path moveTo(Path targetPath) {
9495
throw new RuntimeException(String.join(", ", errors));
9596
}
9697

98+
Logger.printUserMessage("AppMap recording saved to %s\n", targetPath.toAbsolutePath());
9799
return targetPath;
98100
}
99101

agent/src/main/java/com/appland/appmap/util/Logger.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.appland.appmap.util;
22

33
import com.appland.appmap.config.AppMapConfig;
4+
import com.appland.appmap.config.Properties;
45

56
public class Logger {
67
private static final org.tinylog.TaggedLogger logger = AppMapConfig.getLogger(null);
@@ -25,4 +26,15 @@ public static void error(Throwable t) {
2526
println(t);
2627
}
2728

29+
/**
30+
* Print a message on stderr unless the silent flag is set.
31+
* @param format
32+
* @param args
33+
*/
34+
public static void printUserMessage(String format, Object... args) {
35+
if (!Properties.Silent) {
36+
System.err.printf(format, args);
37+
}
38+
}
39+
2840
}

agent/test/classloading/classloading.bats

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ setup_file() {
1717
}
1818

1919
@test "Proxy" {
20-
run \
20+
run --separate-stderr \
2121
./gradlew ${BATS_VERSION+-q} -PappmapJar="$AGENT_JAR" run --args "TestProxy"
2222
assert_success
2323
assert_json_eq ".events[0].defined_class" "com.appland.appmap.test.fixture.helloworld.HelloWorld"

agent/test/helper.bash

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ _tests_helper() {
3131
if type -t bats_load_library &>/dev/null; then
3232
bats_load_library bats-support
3333
bats_load_library bats-assert
34+
bats_require_minimum_version 1.5.0
3435
fi
3536
}
3637

agent/test/http_client/httpclient/httpclient.bats

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ setup_file() {
99
}
1010

1111
@test "request without query" {
12-
run ./gradlew -q -PmainClass=httpclient.HttpClientTest run ${DEBUG} --args "${WS_URL}/vets"
12+
run --separate-stderr ./gradlew -q -PmainClass=httpclient.HttpClientTest run ${DEBUG} --args "${WS_URL}/vets"
1313

1414
assert_json_eq '.events[1].http_client_request.request_method' "GET"
1515
assert_json_eq '.events[1].http_client_request.url' "${WS_URL}/vets"
@@ -20,7 +20,7 @@ setup_file() {
2020
}
2121

2222
@test "request with query" {
23-
run ./gradlew -q -PmainClass=httpclient.HttpClientTest run ${DEBUG} --args "${WS_URL}/owners?lastName=davis"
23+
run --separate-stderr ./gradlew -q -PmainClass=httpclient.HttpClientTest run ${DEBUG} --args "${WS_URL}/owners?lastName=davis"
2424

2525
assert_json_eq '.events[1].http_client_request.url' "${WS_URL}/owners"
2626
assert_json_eq '.events[1].message | length' 1
@@ -30,14 +30,14 @@ setup_file() {
3030
}
3131

3232
@test "request without Content-Type" {
33-
run ./gradlew -q -PmainClass=httpclient.HttpClientTest run ${DEBUG} --args "${WS_URL}/no-content"
33+
run --separate-stderr ./gradlew -q -PmainClass=httpclient.HttpClientTest run ${DEBUG} --args "${WS_URL}/no-content"
3434

3535
assert_json_eq '.events[1].http_client_request.url' "${WS_URL}/no-content"
3636
assert_json_eq '.events[2].http_client_response.status' "200"
3737
}
3838

3939
@test "request with HttpHost" {
40-
run ./gradlew -q -PmainClass=httpclient.HttpHostTest run ${DEBUG} --args "${WS_HOST} ${WS_PORT} /owners?lastName=davis"
40+
run --separate-stderr ./gradlew -q -PmainClass=httpclient.HttpHostTest run ${DEBUG} --args "${WS_HOST} ${WS_PORT} /owners?lastName=davis"
4141

4242
assert_json_eq '.events[1].http_client_request.url' "${WS_URL}/owners"
4343
assert_json_eq '.events[1].message | length' 1

agent/test/petclinic/petclinic-tests.bats

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,15 +96,15 @@ run_petclinic_test() {
9696

9797
@test "NoAppMap on method disables test recording" {
9898
run_petclinic_test "JUnit5Tests#testAnnotatedMethodNotRecorded"
99-
assert_output 'passing annotated test, not recorded'
99+
assert_output --partial 'passing annotated test, not recorded'
100100

101101
run test \! -f ./tmp/appmap/junit/org_springframework_samples_petclinic_JUnit5Tests_testAnnotatedMethodNotRecorded.appmap.json
102102
assert_success
103103
}
104104

105105
@test "NoAppMap on class disables test recording" {
106106
run_petclinic_test "JUnit5Tests\$TestClass#testAnnotatedClassNotRecorded"
107-
assert_output "passing annotated class, not recorded"
107+
assert_output --partial "passing annotated class, not recorded"
108108

109109
run test \! -f ./tmp/appmap/junit/org_springframework_samples_petclinic_JUnit5Tests_testAnnotatedMethodNotRecorded.appmap.json
110110
assert_success

0 commit comments

Comments
 (0)