@Override public void execute(Tuple tuple) { String id = tuple.getString(TopologyConstants.ID_POSITION); Metadata metadata = (Metadata) tuple.getValue(TopologyConstants.METADATA_POSITION); log.info("Looping back metadata with signal {} for {}", metadata.getSignal(), id); publish(new PubSubMessage(id, null, metadata), tuple); } }
private static boolean isSameMetadata(Object actual, Object expected) { Metadata actualMetadata = (Metadata) actual; Metadata expectedMetadata = (Metadata) expected; if (actualMetadata.getSignal() != expectedMetadata.getSignal()) { return false; } Serializable actualContent = actualMetadata.getContent(); Serializable expectedContent = expectedMetadata.getContent(); return actualContent == expectedContent || actualContent.equals(expectedContent); }
@Override public void execute(Tuple tuple) { String id = tuple.getString(TopologyConstants.ID_POSITION); Metadata metadata = (Metadata) tuple.getValue(TopologyConstants.METADATA_POSITION); log.info("Looping back metadata with signal {} for {}", metadata.getSignal(), id); publish(new PubSubMessage(id, null, metadata), tuple); } }
/** * Handles a metadata message for a query. * * @param tuple The metadata tuple. * @return The created {@link Metadata}. */ protected Metadata onMeta(Tuple tuple) { String id = tuple.getString(TopologyConstants.ID_POSITION); Metadata metadata = (Metadata) tuple.getValue(TopologyConstants.METADATA_POSITION); if (metadata == null) { return null; } Metadata.Signal signal = metadata.getSignal(); if (signal == Metadata.Signal.KILL || signal == Metadata.Signal.COMPLETE) { removeQuery(id); log.info("Received {} signal and killed query: {}", signal, id); } return metadata; }
/** * Handles a metadata message for a query. * * @param tuple The metadata tuple. * @return The created {@link Metadata}. */ protected Metadata onMeta(Tuple tuple) { String id = tuple.getString(TopologyConstants.ID_POSITION); Metadata metadata = (Metadata) tuple.getValue(TopologyConstants.METADATA_POSITION); if (metadata == null) { return null; } Metadata.Signal signal = metadata.getSignal(); if (signal == Metadata.Signal.KILL || signal == Metadata.Signal.COMPLETE) { removeQuery(id); log.info("Received {} signal and killed query: {}", signal, id); } return metadata; }