Skip to content

Instantly share code, notes, and snippets.

@migue
Created November 17, 2014 13:01
Show Gist options
  • Save migue/8acb336822bff4d23cf9 to your computer and use it in GitHub Desktop.
Save migue/8acb336822bff4d23cf9 to your computer and use it in GitHub Desktop.
@Component(
immediate = true,
service = ModelListener.class
)
public class MBMessagesModelListener extends BaseModelListener<MBMessage> {
@Override
public void onAfterCreate(MBMessage model)
throws ModelListenerException {
super.onAfterUpdate(model);
publishMessage(model);
}
@Override
public void onAfterUpdate(MBMessage model) throws ModelListenerException {
super.onAfterUpdate(model);
publishMessage(model);
}
protected Message buildMessage(MBMessage mbMessage) {
Message message = new Message();
message.put("topic", _ENTITY_EVENT);
message.setPayload(buildPayload(mbMessage));
return message;
}
protected String buildPayload(MBMessage mbMessage) {
StringBundler sb = new StringBundler(6);
sb.append(mbMessage.getCompanyId());
sb.append(StringPool.SEMICOLON);
sb.append(mbMessage.getUserId());
sb.append(StringPool.SEMICOLON);
sb.append(mbMessage.getCreateDate());
sb.append(StringPool.SEMICOLON);
sb.append(mbMessage.getMessageId());
sb.append(StringPool.SEMICOLON);
sb.append(mbMessage.getSubject());
sb.append(StringPool.SEMICOLON);
sb.append(mbMessage.getBody());
sb.append(StringPool.SEMICOLON);
return sb.toString();
}
protected void publishMessage(MBMessage mbMessage) {
_messageBus.sendMessage(
"kafka_destination", buildMessage(mbMessage));
}
@Reference
protected void setMessageBus(MessageBus messageBus) {
_messageBus = messageBus;
}
protected void unsetMessageBus(MessageBus messageBus) {
_messageBus = null;
}
private static final String _ENTITY_EVENT = "mb_messages";
private MessageBus _messageBus;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment