@Override public JsonElement toJson() { return WatermarkSerializerHelper.convertWatermarkToJson(this); }
public static Watermark deserialize(String content) throws WatermarkMetadataMulFormatException { List<String> tmp = Splitter.on(DELIMITER).trimResults().omitEmptyStrings().splitToList(content); if (tmp.size() < 2) { throw new WatermarkMetadataMulFormatException("wrong format " + content); } String classname = tmp.get(0); String jsonStr = tmp.get(1); try { Class<? extends Watermark> watermarkClass = (Class<? extends Watermark>) Class.forName(classname); return WatermarkSerializerHelper.convertJsonToWatermark(new JsonParser().parse(jsonStr), watermarkClass); } catch (ClassNotFoundException e) { throw new WatermarkMetadataMulFormatException("wrong format " + e.getMessage()); } }
@Override public JsonElement toJson() { return WatermarkSerializerHelper.convertWatermarkToJson(this); }
@Test public void testWatermarkWorkUnitStateSerialization() { long actualHighWatermarkValue = 50; TestWatermark actualHighWatermark = new TestWatermark(); actualHighWatermark.setLongWatermark(actualHighWatermarkValue); WorkUnitState workUnitState = new WorkUnitState(); workUnitState.setActualHighWatermark(actualHighWatermark); TestWatermark deserializedActualHighWatermark = WatermarkSerializerHelper.convertJsonToWatermark(workUnitState.getActualHighWatermark(), TestWatermark.class); Assert.assertEquals(deserializedActualHighWatermark.getLongWatermark(), actualHighWatermarkValue); } }
@Override public JsonElement toJson() { return WatermarkSerializerHelper.convertWatermarkToJson(this); }
@Test public void testWatermarkWorkUnitSerialization() { long lowWatermarkValue = 0; long expectedHighWatermarkValue = 100; TestWatermark lowWatermark = new TestWatermark(); lowWatermark.setLongWatermark(lowWatermarkValue); TestWatermark expectedHighWatermark = new TestWatermark(); expectedHighWatermark.setLongWatermark(expectedHighWatermarkValue); WatermarkInterval watermarkInterval = new WatermarkInterval(lowWatermark, expectedHighWatermark); WorkUnit workUnit = new WorkUnit(null, null, watermarkInterval); TestWatermark deserializedLowWatermark = WatermarkSerializerHelper.convertJsonToWatermark(workUnit.getLowWatermark(), TestWatermark.class); TestWatermark deserializedExpectedHighWatermark = WatermarkSerializerHelper.convertJsonToWatermark(workUnit.getExpectedHighWatermark(), TestWatermark.class); Assert.assertEquals(deserializedLowWatermark.getLongWatermark(), lowWatermarkValue); Assert.assertEquals(deserializedExpectedHighWatermark.getLongWatermark(), expectedHighWatermarkValue); }
@Override public JsonElement toJson() { return WatermarkSerializerHelper.convertWatermarkToJson(this); }
public static Watermark deserialize(String content) throws WatermarkMetadataMulFormatException { List<String> tmp = Splitter.on(DELIMITER).trimResults().omitEmptyStrings().splitToList(content); if (tmp.size() < 2) { throw new WatermarkMetadataMulFormatException("wrong format " + content); } String classname = tmp.get(0); String jsonStr = tmp.get(1); try { Class<? extends Watermark> watermarkClass = (Class<? extends Watermark>) Class.forName(classname); return WatermarkSerializerHelper.convertJsonToWatermark(new JsonParser().parse(jsonStr), watermarkClass); } catch (ClassNotFoundException e) { throw new WatermarkMetadataMulFormatException("wrong format " + e.getMessage()); } }
@Override public JsonElement toJson() { return WatermarkSerializerHelper.convertWatermarkToJson(this); }