Add sendfile support to transport-apr
-------------------------------------

                 Key: DIRMINA-601
                 URL: https://issues.apache.org/jira/browse/DIRMINA-601
             Project: MINA
          Issue Type: Improvement
          Components: Core, Transport
    Affects Versions: 2.0.0-M2
            Reporter: Geoff Cadien


I've take a shot at adding support for sendfile to transport-apr.  I've had to 
make several changes because in the current code FileRegion is NIO specific 
because of it's reliance on FileChannel.  I've made the following changes:

I've created an interface called SendableFile to take the place of using 
FileChannel in FileRegion.  I've also created two implementations of this 
interface, AprSendableFile and NioSendableFile.  The method of interest is 
send(long position, long length) which is used to send the file.  Notice it 
doesn't take an IoSession or a Channel as a parameter.  I tried using generics 
to include  the proper subclass of IoSession but that didn't work out very 
well. :-)

There are still a couple of problems that need to be dealt with.  First and 
foremost is that AbstractIoSession will create instances of DefaultFileRegion 
in the write method when passed either a File or a FileChannel.  This causes a 
problem because FileRegion is no longer NIO specific.  I don't have a solution 
right now other than removing the code.

The other problem is with FileRegionWriteFilter (and unit test), again because 
FileRegion is NIO specific and exposes a FileChannel.  

I'm hoping somebody can take a look at the code and provide some feedback if 
they believe this is headed in the right direction or have a better idea.  I'll 
attach the patches shortly.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to