2
2
3
3
import java .io .IOException ;
4
4
import java .util .ArrayList ;
5
+ import java .util .Iterator ;
5
6
import java .util .List ;
6
7
8
+ import com .fasterxml .jackson .annotation .JsonProperty ;
7
9
import com .fasterxml .jackson .dataformat .xml .XmlMapper ;
8
10
import com .fasterxml .jackson .dataformat .xml .XmlTestBase ;
9
11
import com .fasterxml .jackson .dataformat .xml .annotation .JacksonXmlElementWrapper ;
@@ -44,13 +46,35 @@ public StringListBean(String... texts)
44
46
}
45
47
}
46
48
49
+ // [dataformat-xml#148]
50
+ static class Bean148 {
51
+ @ JsonProperty ("item" )
52
+ @ JacksonXmlElementWrapper (localName = "list" )
53
+ public Iterator <String > items () {
54
+ return new Iterator <String >() {
55
+ int item = 3 ;
56
+
57
+ @ Override
58
+ public boolean hasNext () {
59
+ return item > 0 ;
60
+ }
61
+
62
+ @ Override
63
+ public String next () {
64
+ item --;
65
+ return Integer .toString (item );
66
+ }
67
+ };
68
+ }
69
+ }
70
+
47
71
/*
48
72
/**********************************************************
49
73
/* Unit tests
50
74
/**********************************************************
51
75
*/
52
76
53
- private final XmlMapper MAPPER = new XmlMapper ();
77
+ private final XmlMapper MAPPER = newMapper ();
54
78
55
79
public void testSimpleWrappedList () throws IOException
56
80
{
@@ -70,4 +94,11 @@ public void testStringList() throws IOException
70
94
+"<strings><text>c</text></strings>"
71
95
+"</stringList></StringListBean>" , xml );
72
96
}
97
+
98
+ // [dataformat-xml#148]
99
+ public void testIteratorSerialization () throws Exception
100
+ {
101
+ assertEquals ("<Bean148><item>2</item><item>1</item><item>0</item></Bean148>" ,
102
+ MAPPER .writeValueAsString (new Bean148 ()).trim ());
103
+ }
73
104
}
0 commit comments