A quick note that I have created an interface called Copier and a couple of implemenations (SimpleCopier, DotStuffingCopier and DotUnstuffingCopier). SMTP uses the DotUnstuffingCopier for both Simple and Stored mail bodies (having them both use the same code is a good thing). DotStuffingCopier is for POP, but I haven't integrated it yet.
This code supercedes the Nokia branch code. Some micro-benchmarking that I have done shows the Copier interface to be marginally quicker and more memory efficient than the Nokia code, around 2-5% (but I had to beat it to death with a stick in order to get it that fast). The Copier interface is also more reusable, however not as elegant, from a design perspective, as the nested streams. It is not possible aggregate Copier imeplematations, each one needs to be implemented seperately. I could further wax philisophical on abstraction vs performance, but I will stop there before people start falling asleep.
Mike.
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=3876207#3876207
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=3876207
|