Skip to content

Commit 3db51de

Browse files
committed
Address other migration from XmlElementWrapper
This was not broken, but seems better to change this as well, at least for consistency, given the issue with Jmx configuration after migrating from JAXB's XmlElementWrapper. This covers all places that used to use JAXB's XmlElementWrapper before migration to XStream.
1 parent 700313f commit 3db51de

File tree

3 files changed

+19
-7
lines changed

3 files changed

+19
-7
lines changed

core/src/main/java/com/microsoft/applicationinsights/internal/config/TelemetryProcessorXmlElement.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
/**
3131
* Created by gupele on 7/26/2016.
3232
*/
33-
@XStreamAlias("Processor")
3433
public class TelemetryProcessorXmlElement {
3534

3635
@XStreamAsAttribute

core/src/main/java/com/microsoft/applicationinsights/internal/config/TelemetryProcessorsXmlElement.java

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,31 +24,38 @@
2424
import java.util.ArrayList;
2525

2626
import com.thoughtworks.xstream.annotations.XStreamAlias;
27+
import com.thoughtworks.xstream.annotations.XStreamImplicit;
2728

2829
/**
2930
* Created by gupele on 7/26/2016.
3031
*/
3132
public class TelemetryProcessorsXmlElement {
3233

3334
@XStreamAlias("CustomProcessors")
34-
private ArrayList<TelemetryProcessorXmlElement> custom = new ArrayList<>();
35+
private TelemetryProcessorWrapperXmlElement customWrapper = new TelemetryProcessorWrapperXmlElement();
3536

3637
@XStreamAlias("BuiltInProcessors")
37-
private ArrayList<TelemetryProcessorXmlElement> builtIn = new ArrayList<>();
38+
private TelemetryProcessorWrapperXmlElement builtInWrapper = new TelemetryProcessorWrapperXmlElement();
3839

3940
public ArrayList<TelemetryProcessorXmlElement> getBuiltInTelemetryProcessors() {
40-
return builtIn;
41+
return builtInWrapper.processors;
4142
}
4243

4344
public void setBuiltInTelemetryProcessors(ArrayList<TelemetryProcessorXmlElement> builtIn) {
44-
this.builtIn = builtIn;
45+
builtInWrapper.processors = builtIn;
4546
}
4647

4748
public ArrayList<TelemetryProcessorXmlElement> getCustomTelemetryProcessors() {
48-
return custom;
49+
return customWrapper.processors;
4950
}
5051

5152
public void setCustomTelemetryProcessors(ArrayList<TelemetryProcessorXmlElement> custom) {
52-
this.custom = custom;
53+
customWrapper.processors = custom;
54+
}
55+
56+
public static class TelemetryProcessorWrapperXmlElement {
57+
58+
@XStreamImplicit(itemFieldName = "Processor")
59+
private ArrayList<TelemetryProcessorXmlElement> processors = new ArrayList<>();
5360
}
5461
}

core/src/test/java/com/microsoft/applicationinsights/internal/config/JaxbAppInsightsConfigurationBuilderTest.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,5 +62,11 @@ public void testBuilderProducesCorrectConfig() throws IOException {
6262
Assert.assertEquals("System Threads", windowsPC.getDisplayName());
6363
JmxXmlElement jmxXmlElement = config.getPerformance().getJmxXmlElements().get(0);
6464
Assert.assertEquals("Thread Count", jmxXmlElement.getDisplayName());
65+
TelemetryProcessorXmlElement builtInTelemetryProcessor =
66+
config.getTelemetryProcessors().getBuiltInTelemetryProcessors().get(0);
67+
Assert.assertEquals("FixedRateSamplingTelemetryProcessor", builtInTelemetryProcessor.getType());
68+
TelemetryProcessorXmlElement customTelemetryProcessor =
69+
config.getTelemetryProcessors().getCustomTelemetryProcessors().get(0);
70+
Assert.assertEquals("Test", customTelemetryProcessor.getType());
6571
}
6672
}

0 commit comments

Comments
 (0)