1 package org.apache.mina.codec.delimited;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 import java.nio.ByteBuffer;
24 import java.util.LinkedList;
25 import java.util.List;
26
27 import org.apache.mina.generated.thrift.UserProfile;
28 import org.apache.thrift.TSerializer;
29 import org.apache.thrift.transport.TFramedTransport;
30 import org.apache.thrift.transport.TMemoryBuffer;
31
32
33
34
35
36
37 public class ThriftTest extends DelimitTest<UserProfile> {
38
39 @Override
40 public List<UserProfile> getObjects() {
41
42 List<UserProfile> list = new LinkedList<UserProfile>();
43
44 list.add(new UserProfile().setUid(1).setName("Jean Dupond"));
45 list.add(new UserProfile().setUid(2).setName("Marie Blanc"));
46
47 return list;
48 }
49
50 @Override
51 protected ByteBuffer delimitWithOriginal() throws Exception {
52
53 TMemoryBuffer m = new TMemoryBuffer(1000000);
54 TFramedTransport t = new TFramedTransport(m);
55 TSerializer tt = new TSerializer();
56 for (UserProfile up : getObjects()) {
57 t.write(tt.serialize(up));
58 t.flush();
59 }
60 return ByteBuffer.wrap(m.getArray(), 0, m.length());
61
62 }
63
64 @Override
65 public SizePrefixedEncoder<UserProfile> getSerializer() throws SecurityException, NoSuchMethodException {
66 return ThriftEncoder.newInstance(UserProfile.class);
67 }
68
69 }