@Test public void testMessageBus001() throws Exception { Assert.assertNotNull(messageBus); // someone that want to get the message - start final MessageBusCallback<TestCallbackData> callBack = new MessageBusCallback<TestCallbackData>() { @Override public void recordCallbackMessage(Message<TestCallbackData> m) { Assert.assertNotNull(m); final TestCallbackData value = m.getValue(); Assert.assertNotNull(value.getValueLong()); Assert.assertEquals(-1L, value.getValueLong().longValue()); Assert.assertNotNull(value.getValueTxt()); Assert.assertEquals("AEAEAE", value.getValueTxt()); } }; messageBus.registerCallBack(callBack); // someone that want to get the message - stop // someone that want to give the message - start final TestCallbackData testCallbackData = new TestCallbackData(); testCallbackData.setValueTxt("AEAEAE"); testCallbackData.setValueLong(-1L); final Message<TestCallbackData> message = new Message<>(); message.setAnnotationLiteral(new AnnotationLiteral<TestCDIMessageBus>() {}); message.setValue(testCallbackData); messageBus.post(message); // someone that want to give the message - stop // no listening enymore messageBus.destroyCallBack(callBack); }