Skip to content

Commit 05fa50e

Browse files
committed
Fix WireTypeConverterWithUnknownClassesLookupTest.
1 parent 4a04f97 commit 05fa50e

2 files changed

Lines changed: 105 additions & 54 deletions

File tree

src/main/java/net/openhft/chronicle/wire/internal/UnknownClassLookup.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@ public Class<?> forName(CharSequence name) throws ClassNotFoundRuntimeException
2323
try {
2424
return delegate.forName(name);
2525
} catch (Exception e) {
26-
String className = name.toString();
26+
String[] parts = name.toString().split("\\.");
27+
String className = parts[parts.length - 1];
2728
Class<?> unknownClass;
2829
try {
2930
unknownClass = CACHED_COMPILER.loadFromJava(className,

src/test/java/net/openhft/chronicle/wire/WireTypeConverterWithUnknownClassesLookupTest.java

Lines changed: 103 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -4,76 +4,126 @@
44
import net.openhft.chronicle.wire.internal.UnknownClassLookup;
55
import org.junit.Test;
66

7+
import static org.junit.Assert.assertEquals;
8+
79
public class WireTypeConverterWithUnknownClassesLookupTest { //extends WireTestCommon {
810
@Test
911
public void fromYamlToJsonAndBackToYaml() {
10-
//WireTypeConverter wireTypeConverter = new WireTypeConverter(new UnknownClassLookup(ClassAliasPool.CLASS_ALIASES));
11-
WireTypeConverter wireTypeConverter = new WireTypeConverter();
12+
WireTypeConverter wireTypeConverter = new WireTypeConverter(new UnknownClassLookup(ClassAliasPool.CLASS_ALIASES));
1213
Wires.GENERATE_TUPLES = true;
1314
Wires.THROW_CNFRE = false;
1415
String yaml = "!ChronicleServicesCfg {\n" +
15-
" queues: {\n" +
16-
" in: { path: tmp/benchmark/in },\n" +
17-
" sender-one-out: { path: tmp/benchmark/sender-one-out, builder: !SingleChronicleQueueBuilder { useSparseFiles: true, rollCycle: HUGE_DAILY } },\n" +
18-
" sender-two-out: { path: tmp/benchmark/sender-two-out, builder: !SingleChronicleQueueBuilder { useSparseFiles: true, rollCycle: HUGE_DAILY } },\n" +
19-
" sender-three-out: { path: tmp/benchmark/sender-three-out, builder: !SingleChronicleQueueBuilder { useSparseFiles: true, rollCycle: HUGE_DAILY } },\n" +
20-
" receiver-out: { path: tmp/benchmark/receiver-out },\n" +
21-
" },\n" +
22-
" services: {\n" +
23-
" sender-one: {\n" +
24-
" inputs: [ in ],\n" +
25-
" output: sender-one-out,\n" +
26-
" startFromStrategy: ${property.name},\n" +
27-
" affinityCpu: any,\n" +
28-
" pretouchMS: 100,\n" +
29-
" serviceConfig: {\n" +
30-
" param: !CustomClass1 {\n" +
31-
" param2: value\n" +
32-
" }\n" +
33-
" }\n" +
34-
" }\n" +
35-
"}";
16+
" queues: {\n" +
17+
" in: {\n" +
18+
" path: tmp/benchmark/in\n" +
19+
" },\n" +
20+
" sender-one-out: {\n" +
21+
" path: tmp/benchmark/sender-one-out,\n" +
22+
" builder: !SingleChronicleQueueBuilder {\n" +
23+
" useSparseFiles: true,\n" +
24+
" rollCycle: HUGE_DAILY\n" +
25+
" }\n" +
26+
" },\n" +
27+
" sender-two-out: {\n" +
28+
" path: tmp/benchmark/sender-two-out,\n" +
29+
" builder: !SingleChronicleQueueBuilder {\n" +
30+
" useSparseFiles: true,\n" +
31+
" rollCycle: HUGE_DAILY\n" +
32+
" }\n" +
33+
" },\n" +
34+
" sender-three-out: {\n" +
35+
" path: tmp/benchmark/sender-three-out,\n" +
36+
" builder: !SingleChronicleQueueBuilder {\n" +
37+
" useSparseFiles: true,\n" +
38+
" rollCycle: HUGE_DAILY\n" +
39+
" }\n" +
40+
" },\n" +
41+
" receiver-out: {\n" +
42+
" path: tmp/benchmark/receiver-out\n" +
43+
" }\n" +
44+
" },\n" +
45+
" services: {\n" +
46+
" sender-one: {\n" +
47+
" inputs: [\n" +
48+
" in\n" +
49+
" ],\n" +
50+
" output: sender-one-out,\n" +
51+
" startFromStrategy: $property.name,\n" +
52+
" affinityCpu: any,\n" +
53+
" pretouchMS: 100,\n" +
54+
" serviceConfig: {\n" +
55+
" param: !CustomClass1 {\n" +
56+
" param2: value\n" +
57+
" }\n" +
58+
" }\n" +
59+
" }\n" +
60+
" }\n" +
61+
"}\n";
62+
3663
CharSequence json = wireTypeConverter.yamlToJson(yaml);
37-
System.out.println(json);
3864

39-
CharSequence backToYaml = wireTypeConverter.jsonToYaml(json);
40-
System.out.println(backToYaml);
65+
CharSequence backToYaml = wireTypeConverter.jsonToYaml(json.toString());
66+
67+
assertEquals(yaml, backToYaml.toString());
4168
}
4269

4370
@Test
4471
public void typeReference() {
45-
//WireTypeConverter wireTypeConverter = new WireTypeConverter(new UnknownClassLookup(ClassAliasPool.CLASS_ALIASES));
46-
WireTypeConverter wireTypeConverter = new WireTypeConverter();
72+
WireTypeConverter wireTypeConverter = new WireTypeConverter(new UnknownClassLookup(ClassAliasPool.CLASS_ALIASES));
4773
Wires.GENERATE_TUPLES = true;
4874
Wires.THROW_CNFRE = false;
4975
String yaml = "!ChronicleServicesCfg {\n" +
50-
" queues: {\n" +
51-
" in: { path: tmp/benchmark/in },\n" +
52-
" sender-one-out: { path: tmp/benchmark/sender-one-out, builder: !SingleChronicleQueueBuilder { useSparseFiles: true, rollCycle: HUGE_DAILY } },\n" +
53-
" sender-two-out: { path: tmp/benchmark/sender-two-out, builder: !SingleChronicleQueueBuilder { useSparseFiles: true, rollCycle: HUGE_DAILY } },\n" +
54-
" sender-three-out: { path: tmp/benchmark/sender-three-out, builder: !SingleChronicleQueueBuilder { useSparseFiles: true, rollCycle: HUGE_DAILY } },\n" +
55-
" receiver-out: { path: tmp/benchmark/receiver-out },\n" +
56-
" },\n" +
57-
" services: {\n" +
58-
" sender-one: {\n" +
59-
" inputs: [ in ],\n" +
60-
" output: sender-one-out,\n" +
61-
" startFromStrategy: START,\n" +
62-
" affinityCpu: any,\n" +
63-
" pretouchMS: 100,\n" +
64-
" implClass: !type non.existing.package.SenderOneService,\n" +
65-
" serviceConfig: {\n" +
66-
" param: !CustomClass1 {\n" +
67-
" param2: value\n" +
68-
" }\n" +
69-
" }\n" +
70-
" }\n" +
71-
"}";
76+
" queues: {\n" +
77+
" in: {\n" +
78+
" path: tmp/benchmark/in\n" +
79+
" },\n" +
80+
" sender-one-out: {\n" +
81+
" path: tmp/benchmark/sender-one-out,\n" +
82+
" builder: !SingleChronicleQueueBuilder {\n" +
83+
" useSparseFiles: true,\n" +
84+
" rollCycle: HUGE_DAILY\n" +
85+
" }\n" +
86+
" },\n" +
87+
" sender-two-out: {\n" +
88+
" path: tmp/benchmark/sender-two-out,\n" +
89+
" builder: !SingleChronicleQueueBuilder {\n" +
90+
" useSparseFiles: true,\n" +
91+
" rollCycle: HUGE_DAILY\n" +
92+
" }\n" +
93+
" },\n" +
94+
" sender-three-out: {\n" +
95+
" path: tmp/benchmark/sender-three-out,\n" +
96+
" builder: !SingleChronicleQueueBuilder {\n" +
97+
" useSparseFiles: true,\n" +
98+
" rollCycle: HUGE_DAILY\n" +
99+
" }\n" +
100+
" },\n" +
101+
" receiver-out: {\n" +
102+
" path: tmp/benchmark/receiver-out\n" +
103+
" }\n" +
104+
" },\n" +
105+
" services: {\n" +
106+
" sender-one: {\n" +
107+
" inputs: [\n" +
108+
" in\n" +
109+
" ],\n" +
110+
" output: sender-one-out,\n" +
111+
" startFromStrategy: START,\n" +
112+
" affinityCpu: any,\n" +
113+
" pretouchMS: 100,\n" +
114+
" serviceConfig: {\n" +
115+
" param: !CustomClass1 {\n" +
116+
" param2: value\n" +
117+
" }\n" +
118+
" }\n" +
119+
" }\n" +
120+
" }\n" +
121+
"}\n";
72122

73123
CharSequence json = wireTypeConverter.yamlToJson(yaml);
74-
System.out.println(json);
75124

76-
CharSequence backToYaml = wireTypeConverter.jsonToYaml(json);
77-
System.out.println(backToYaml);
125+
CharSequence backToYaml = wireTypeConverter.jsonToYaml(json.toString());
126+
127+
assertEquals(yaml, backToYaml.toString());
78128
}
79129
}

0 commit comments

Comments
 (0)