Skip to content

Commit 3d881b6

Browse files
committed
Convert ProcessData
1 parent d8d3083 commit 3d881b6

File tree

1 file changed

+67
-55
lines changed
  • agent/agent-profiler/agent-diagnostics/src/main/java/com/microsoft/applicationinsights/diagnostics/collection/jvm

1 file changed

+67
-55
lines changed

agent/agent-profiler/agent-diagnostics/src/main/java/com/microsoft/applicationinsights/diagnostics/collection/jvm/ProcessData.java

Lines changed: 67 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,10 @@
33

44
package com.microsoft.applicationinsights.diagnostics.collection.jvm;
55

6-
import com.fasterxml.jackson.annotation.JsonCreator;
7-
import com.fasterxml.jackson.annotation.JsonProperty;
6+
import com.azure.json.JsonSerializable;
7+
import com.azure.json.JsonWriter;
88
import com.microsoft.applicationinsights.diagnostics.collection.libos.process.ProcessInfo;
9+
import java.io.IOException;
910
import java.util.ArrayList;
1011
import java.util.Arrays;
1112
import java.util.Collections;
@@ -18,13 +19,13 @@
1819
/**
1920
* Represents information about a running process. Also attempts to redact any sensitive arguments.
2021
*/
21-
public class ProcessData implements ProcessInfo {
22+
public class ProcessData implements ProcessInfo, JsonSerializable<ProcessData> {
2223

23-
private final String name;
24-
private final int pid;
25-
private final String uid;
24+
private String name;
25+
private int pid;
26+
private String uid = UUID.randomUUID().toString();
2627

27-
@Nullable private final Map<String, String> metaData;
28+
@Nullable private Map<String, String> metaData;
2829

2930
private static final List<String> SENSITIVE_PROPERTIES_ARGS =
3031
Arrays.asList(
@@ -59,6 +60,8 @@ public class ProcessData implements ProcessInfo {
5960
SENSITIVE_ARGS_PATTERNS = Collections.unmodifiableList(patterns);
6061
}
6162

63+
public ProcessData() {}
64+
6265
public static String sanetiseArg(String name) {
6366

6467
for (String pattern : SENSITIVE_ARGS_PATTERNS) {
@@ -69,48 +72,78 @@ public static String sanetiseArg(String name) {
6972
}
7073

7174
public ProcessData(String name, int pid) {
72-
this(name, pid, UUID.randomUUID().toString());
75+
setName(name).setPid(pid);
7376
}
7477

7578
public ProcessData(String name, int pid, Map<String, String> metaData) {
76-
this(name, pid, UUID.randomUUID().toString(), metaData);
79+
setName(name).setPid(pid).setMetaData(metaData);
7780
}
7881

7982
public ProcessData(String name, int pid, String uid) {
80-
this(name, pid, uid, null);
83+
setName(name).setPid(pid).setUid(uid);
8184
}
8285

8386
public ProcessData(String name) {
84-
this(sanetiseArg(name), -1, UUID.randomUUID().toString(), null);
87+
setName(name).setPid(-1);
8588
}
8689

8790
public ProcessData(ProcessInfo clone) {
88-
this(
89-
(clone == null ? "Unknown" : clone.getName()),
90-
(clone == null ? -1 : clone.getPid()),
91-
(clone == null ? UUID.randomUUID().toString() : clone.getUid()),
92-
(clone == null ? null : clone.getMetaData()));
93-
}
94-
95-
@JsonCreator
96-
public ProcessData(
97-
@JsonProperty("name") String name,
98-
@JsonProperty("pid") int pid,
99-
@Nullable @JsonProperty("uid") String uid,
100-
@Nullable @JsonProperty("metaData") Map<String, String> metaData) {
91+
setName(clone == null ? "Unknown" : clone.getName())
92+
.setPid(clone == null ? -1 : clone.getPid())
93+
.setUid(clone == null ? UUID.randomUUID().toString() : clone.getUid())
94+
.setMetaData(clone == null ? null : clone.getMetaData());
95+
}
96+
97+
@Override
98+
public String getName() {
99+
return name;
100+
}
101+
102+
public ProcessData setName(String name) {
101103
this.name = sanetiseArg(name);
104+
return this;
105+
}
106+
107+
@Override
108+
public int getPid() {
109+
return pid;
110+
}
111+
112+
public ProcessData setPid(int pid) {
102113
this.pid = pid;
103-
if (uid == null) {
104-
this.uid = UUID.randomUUID().toString();
105-
} else {
106-
this.uid = uid;
107-
}
114+
return this;
115+
}
108116

109-
if (metaData != null) {
110-
this.metaData = Collections.unmodifiableMap(metaData);
111-
} else {
112-
this.metaData = null;
113-
}
117+
@Override
118+
public String getUid() {
119+
return uid;
120+
}
121+
122+
public ProcessData setUid(String uid) {
123+
this.uid = uid;
124+
return this;
125+
}
126+
127+
@Override
128+
@Nullable
129+
public Map<String, String> getMetaData() {
130+
return metaData;
131+
}
132+
133+
public ProcessData setMetaData(Map<String, String> metaData) {
134+
this.metaData = metaData != null ? Collections.unmodifiableMap(metaData) : null;
135+
return this;
136+
}
137+
138+
@Override
139+
public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
140+
jsonWriter.writeStartObject();
141+
jsonWriter.writeStringField("name", name);
142+
jsonWriter.writeIntField("pid", pid);
143+
jsonWriter.writeStringField("uid", uid);
144+
jsonWriter.writeMapField("metaData", metaData, JsonWriter::writeString);
145+
jsonWriter.writeEndObject();
146+
return jsonWriter;
114147
}
115148

116149
// @ExistsForTesting
@@ -127,21 +160,6 @@ protected static ProcessData create(String name, int pid, @Nullable String uid)
127160
return new ProcessData(name, pid, uid);
128161
}
129162

130-
@Override
131-
public String getName() {
132-
return name;
133-
}
134-
135-
@Override
136-
public int getPid() {
137-
return pid;
138-
}
139-
140-
@Override
141-
public String getUid() {
142-
return uid;
143-
}
144-
145163
@Override
146164
public int compareTo(ProcessInfo o) {
147165
return COMPARATOR.compare(this, o);
@@ -178,10 +196,4 @@ public boolean equals(Object obj) {
178196
}
179197
return pid == other.pid;
180198
}
181-
182-
@Override
183-
@Nullable
184-
public Map<String, String> getMetaData() {
185-
return metaData;
186-
}
187199
}

0 commit comments

Comments
 (0)