class RMQMessageScheme extends MessageScheme {
override def deserialize(ser: ByteBuffer): util.List[AnyRef] = {
val list = new util.ArrayList[AnyRef]
return list
}
override def getOutputFields: Fields = {
new Fields(ConfUtils.TOPOLOGY_HEADERS_FIELDNAME)
}
override def open(config: util.Map[_, _], context: TopologyContext): Unit = {
}
override def close(): Unit = {
}
override def deserialize(message: Message): util.List[AnyRef] = {
val list = this.deserialize(ByteBuffer.wrap(message.getBody))
//这里是scala语言,但也是jvm语言。
//将该类转为Message.DeliveredMessage
val msg = message.asInstanceOf[Message.DeliveredMessage]
//从中获取头文件
val headers = msg.getHeaders.asScala.map(tup=>{
(tup._1,tup._2.toString)
}).asJava
list.add(headers)
list
}
}