mirror of
https://github.com/carlrobertoh/ProxyAI.git
synced 2026-05-02 21:51:01 +00:00
fix: Telemetry can't serialize traits anymore (#477)
* fix: Telemetry can't serialize traits anymore * Add tests
This commit is contained in:
parent
9666590cb1
commit
67dc425a94
6 changed files with 88 additions and 25 deletions
|
|
@ -28,9 +28,10 @@ public class IdentifyTraitsPersistence {
|
|||
public static final IdentifyTraitsPersistence INSTANCE = new IdentifyTraitsPersistence();
|
||||
private static final Logger LOGGER = Logger.getInstance(IdentifyTraitsPersistence.class);
|
||||
|
||||
private static final Path FILE = Directories.PATH.resolve("segment-identify-traits.json");
|
||||
static Path FILE = Directories.PATH.resolve("segment-identify-traits.json");
|
||||
|
||||
private IdentifyTraits identifyTraits = null;
|
||||
IdentifyTraits identifyTraits = null;
|
||||
private Gson gson = new Gson();
|
||||
|
||||
protected IdentifyTraitsPersistence() {}
|
||||
|
||||
|
|
@ -41,36 +42,25 @@ public class IdentifyTraitsPersistence {
|
|||
return identifyTraits;
|
||||
}
|
||||
|
||||
public synchronized void set(IdentifyTraits identifyTraits) {
|
||||
public synchronized boolean set(IdentifyTraits identifyTraits) {
|
||||
if (Objects.equals(identifyTraits, this.identifyTraits)) {
|
||||
return;
|
||||
return true;
|
||||
}
|
||||
this.identifyTraits = identifyTraits;
|
||||
String string = null;
|
||||
if (identifyTraits != null) {
|
||||
string = serialize(identifyTraits);
|
||||
}
|
||||
save(string, FILE);
|
||||
return save(serialize(identifyTraits), FILE);
|
||||
}
|
||||
|
||||
private String serialize(IdentifyTraits identifyTraits) {
|
||||
if (identifyTraits == null) {
|
||||
return null;
|
||||
}
|
||||
return new Gson().toJson(identifyTraits);
|
||||
String serialize(IdentifyTraits identifyTraits) {
|
||||
return identifyTraits == null ? null : gson.toJson(identifyTraits);
|
||||
}
|
||||
|
||||
private IdentifyTraits deserialize(String identity) {
|
||||
if (identity == null) {
|
||||
return null;
|
||||
}
|
||||
return new Gson().fromJson(identity, IdentifyTraits.class);
|
||||
IdentifyTraits deserialize(String identity) {
|
||||
return identity == null ? null : gson.fromJson(identity, IdentifyTraits.class);
|
||||
}
|
||||
|
||||
private String load(Path file) {
|
||||
String event = null;
|
||||
String load(Path file) {
|
||||
try(Stream<String> lines = getLines(file)) {
|
||||
event = lines
|
||||
return lines
|
||||
.filter(l -> !l.isBlank())
|
||||
.findAny()
|
||||
.map(String::trim)
|
||||
|
|
@ -78,7 +68,7 @@ public class IdentifyTraitsPersistence {
|
|||
} catch (IOException e) {
|
||||
LOGGER.warn("Could not read identity file at " + file.toAbsolutePath(), e);
|
||||
}
|
||||
return event;
|
||||
return null;
|
||||
}
|
||||
|
||||
/* for testing purposes */
|
||||
|
|
@ -86,13 +76,15 @@ public class IdentifyTraitsPersistence {
|
|||
return Files.lines(file);
|
||||
}
|
||||
|
||||
private void save(String event, Path file) {
|
||||
boolean save(String event, Path file) {
|
||||
try {
|
||||
createFileAndParent(file);
|
||||
writeFile(event, file);
|
||||
return true;
|
||||
} catch (IOException e) {
|
||||
LOGGER.warn("Could not write identity to file at " + FILE.toAbsolutePath(), e);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/* for testing purposes */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue