I have been working hard on this one... and it's getting into a nice shape. I should probably send a PR later this week...
Meanwhile if you want to see my progress before I send the PR, I am doing my work on this branch: https://github.com/clebertsuconic/activemq-artemis/tree/artemis-1009 if you are a reader from the future, look for committs associated with this JIRA :) https://issues.apache.org/jira/browse/ARTEMIS-1009 What I am changing: - ServerSession / PostOffice / QueueImpl / JournalImpl.. are not referencing ServerMessage or MessageImpl any longer. Instead I created an interface called Message (there was one already, I just put everything I need there). - There will be implementations for each time of Message: - AMQPMessage - CoreMessage - OpenwireMessage (To be implemented) - StompMessage (To be implemented (I am looking for one already? is there anything on apollo or AMQ5)) - The Journal now has a method to pass in a Persister. Each Protocol will provide a Persister for its messageFormat - CoreMessage keeps the same buffer all the way through the lifecycle of the Message. It used to pass a copy of the buffer.. this should diminish GC and opens the possibility of further improvements where we use a Pool or a Ringbuffer I am fixing tests before I send a PR. I won't create any temporary branch for now.. use my github if you want to have a preview of what it will look like. I will also squash the committs before sending it.
