use of org.teiid.translator.marshallers.G4Marshaller in project teiid by teiid.
the class TestTeiidTableMarsheller method testReadComplex.
@Test
public void testReadComplex() throws Exception {
IckleConversionVisitor visitor = helpExecute("select * from G2");
TeiidTableMarsheller readMarshaller = new TeiidTableMarsheller(ProtobufMetadataProcessor.getMessageName(visitor.getParentTable()), MarshallerBuilder.getWireMap(visitor.getParentTable(), visitor.getMetadata()));
SerializationContext ctx = ProtobufUtil.newSerializationContext(Configuration.builder().build());
ctx.registerProtoFiles(FileDescriptorSource.fromString("tables.proto", ObjectConverterUtil.convertFileToString(UnitTestUtil.getTestDataFile("tables.proto"))));
ctx.registerMarshaller(new G3Marshaller());
ctx.registerMarshaller(new G4Marshaller());
G2Marshaller writeMarshaller = new G2Marshaller() {
@Override
public G2 readFrom(ProtoStreamReader reader) throws IOException {
throw new RuntimeException("Use Teiid marshaller for reading for this test..");
}
};
G2 g2 = buildG2();
// this is used for writing, if reading is being attempted then fail
ctx.registerMarshaller(writeMarshaller);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
RawProtoStreamWriter out = RawProtoStreamWriterImpl.newInstance(baos);
WrappedMessage.writeMessage(ctx, out, g2);
out.flush();
baos.flush();
ctx.unregisterMarshaller(writeMarshaller);
ctx.registerMarshaller(readMarshaller);
RawProtoStreamReader in = RawProtoStreamReaderImpl.newInstance(baos.toByteArray());
InfinispanDocument result = WrappedMessage.readMessage(ctx, in);
// System.out.println(result.flatten());
assertG2(result);
ctx.unregisterMarshaller(readMarshaller);
}
use of org.teiid.translator.marshallers.G4Marshaller in project teiid by teiid.
the class TestTeiidTableMarsheller method testWriteComplex.
@Test
public void testWriteComplex() throws Exception {
IckleConversionVisitor visitor = helpExecute("select * from G2");
TeiidTableMarsheller writeMarshaller = new TeiidTableMarsheller(ProtobufMetadataProcessor.getMessageName(visitor.getParentTable()), MarshallerBuilder.getWireMap(visitor.getParentTable(), visitor.getMetadata()));
SerializationContext ctx = ProtobufUtil.newSerializationContext(Configuration.builder().build());
ctx.registerProtoFiles(FileDescriptorSource.fromString("tables.proto", ObjectConverterUtil.convertFileToString(UnitTestUtil.getTestDataFile("tables.proto"))));
ctx.registerMarshaller(new G3Marshaller());
ctx.registerMarshaller(new G4Marshaller());
G2Marshaller readMarshaller = new G2Marshaller() {
@Override
public void writeTo(ProtoStreamWriter writer, G2 g2) throws IOException {
throw new RuntimeException("Use Teiid marshaller for writing for this test..");
}
};
InfinispanDocument g2 = buildG2(visitor);
ctx.registerMarshaller(writeMarshaller);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
RawProtoStreamWriter out = RawProtoStreamWriterImpl.newInstance(baos);
WrappedMessage.writeMessage(ctx, out, g2);
out.flush();
baos.flush();
ctx.unregisterMarshaller(writeMarshaller);
// this is used for writing, if reading is being attempted then fail
ctx.registerMarshaller(readMarshaller);
RawProtoStreamReader in = RawProtoStreamReaderImpl.newInstance(baos.toByteArray());
G2 result = WrappedMessage.readMessage(ctx, in);
ctx.unregisterMarshaller(readMarshaller);
assertEquals(buildG2(), result);
}
use of org.teiid.translator.marshallers.G4Marshaller in project teiid by teiid.
the class TestTeiidTableMarsheller method testMarshallWithComplexNative.
// this is for sanity debugging while writing the protocol decoder.
@Test
public void testMarshallWithComplexNative() throws Exception {
SerializationContext ctx = ProtobufUtil.newSerializationContext(Configuration.builder().build());
ctx.registerProtoFiles(FileDescriptorSource.fromString("tables.proto", ObjectConverterUtil.convertFileToString(UnitTestUtil.getTestDataFile("tables.proto"))));
ctx.registerMarshaller(new G3Marshaller());
ctx.registerMarshaller(new G4Marshaller());
ctx.registerMarshaller(new G2Marshaller());
G2 g2 = buildG2();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
RawProtoStreamWriter out = RawProtoStreamWriterImpl.newInstance(baos);
WrappedMessage.writeMessage(ctx, out, g2);
out.flush();
baos.flush();
RawProtoStreamReader in = RawProtoStreamReaderImpl.newInstance(baos.toByteArray());
G2 result = WrappedMessage.readMessage(ctx, in);
// System.out.println(result);
assertNotNull(result);
assertEquals(g2, result);
}
Aggregations