@Override public Schema getSchema() { // TODO is it ok to use string type rather than logical decimal type? logical type need two parameters, // precision and scale return SchemaBuilder.builder().stringBuilder().prop(SchemaConstants.JAVA_CLASS_FLAG, getDatumClass().getCanonicalName()) .endString(); }
@Override public Schema getSchema() { return SchemaBuilder.builder().stringBuilder().prop(SchemaConstants.JAVA_CLASS_FLAG, getDatumClass().getCanonicalName()) .endString(); }
@Override public Schema getSchema() { return SchemaBuilder.builder().stringBuilder().prop(SchemaConstants.JAVA_CLASS_FLAG, getDatumClass().getCanonicalName()) .endString(); }
Schema array; if (avroSettings.isEnableNativeString()) { array = array().items(builder().stringBuilder().prop(PROP_JAVA_STRING_KEY, PROP_JAVA_STRING_VALUE).endString()); } else { array = array().items(builder().stringBuilder().endString()); Schema value; if (avroSettings.isEnableNativeString()) { value = builder().stringBuilder().prop(PROP_JAVA_STRING_KEY, PROP_JAVA_STRING_VALUE).endString(); } else { value = builder().stringBuilder().endString();
return AvroUtils._date(); case OBJECT : return SchemaBuilder.builder().stringBuilder().prop(SchemaConstants.JAVA_CLASS_FLAG, "java.lang.Object").endString(); default: throw new UnsupportedOperationException("Unrecognized type " + talendType);
return AvroUtils._date(); case OBJECT : return SchemaBuilder.builder().stringBuilder().prop(SchemaConstants.JAVA_CLASS_FLAG, "java.lang.Object").endString(); default: throw new UnsupportedOperationException("Unrecognized type " + talendType);
public void run(RegressionEnvironment env) { String epl = "@name('s0') " + EventRepresentationChoice.AVRO.getAnnotationText() + " select 1 as myInt," + "{1L, 2L} as myLongArray," + EPLInsertIntoPopulateCreateStreamAvro.class.getName() + ".makeByteArray() as myByteArray, " + EPLInsertIntoPopulateCreateStreamAvro.class.getName() + ".makeMapStringString() as myMap " + "from SupportBean"; env.compileDeploy(epl).addListener("s0"); env.sendEventBean(new SupportBean()); EventBean event = env.listener("s0").assertOneGetNewAndReset(); String json = SupportAvroUtil.avroToJson(event); System.out.println(json); assertEquals(1, event.get("myInt")); EPAssertionUtil.assertEqualsExactOrder(new Long[]{1L, 2L}, ((Collection) event.get("myLongArray")).toArray()); assertTrue(Arrays.equals(new byte[]{1, 2, 3}, ((ByteBuffer) event.get("myByteArray")).array())); assertEquals("{k1=v1}", ((Map) event.get("myMap")).toString()); Schema designSchema = record("name").fields() .requiredInt("myInt") .name("myLongArray").type(array().items(unionOf().nullType().and().longType().endUnion())).noDefault() .name("myByteArray").type("bytes").noDefault() .name("myMap").type(map().values().stringBuilder().prop(AvroConstant.PROP_JAVA_STRING_KEY, AvroConstant.PROP_JAVA_STRING_VALUE).endString()).noDefault() .endRecord(); Schema assembledSchema = ((AvroEventType) event.getEventType()).getSchemaAvro(); String compareMsg = SupportAvroUtil.compareSchemas(designSchema, assembledSchema); assertNull(compareMsg, compareMsg); env.undeployAll(); } }
@Override public Schema getSchema() { // TODO is it ok to use string type rather than logical decimal type? logical type need two parameters, // precision and scale return SchemaBuilder.builder().stringBuilder().prop(SchemaConstants.JAVA_CLASS_FLAG, getDatumClass().getCanonicalName()) .endString(); }
public Object map(TypeRepresentationMapperContext context) { if (context.getClazz() == LocalDateTime.class) { return builder().stringBuilder().endString(); } return null; } }
@Test public void testString() { Schema.Type type = Schema.Type.STRING; Schema simple = SchemaBuilder.builder().stringType(); Schema expected = primitive(type, simple); Schema built1 = SchemaBuilder.builder() .stringBuilder().prop("p", "v").endString(); Assert.assertEquals(expected, built1); }