MessageFactory { MessageFactoryBuilders.MessageBuilder.Body messageBuilder() { return MessageFactoryBuilders.messageBuilder(this); } @Builder @Recycle  MessageFactory(String sender);   }
@Test public void message() throws Exception { Message message = messageFactory.messageBuilder() .body("Hi") .recipient("Bob") .subject("test"); assertThat(message.sender, is("Alice")); assertThat(message.body, is("Hi")); assertThat(message.recipient, is("Bob")); assertThat(message.subject, is("test")); assertThat(messageUpdater(message).body("Goodbye").done().body, is("Goodbye")); }