Hi Julien,

I followed your proposal, and moved the classes into the proposed packages, fixed a few visibility issues (protected methods and such).

More inline...


Julien Vermillard wrote:
First thought about class in o.a.m.common :
I tried to give a category for each class (buffer,service,future,etc..)

IoBufferHexDumper.java          buffer
SimpleBufferAllocator.java      buffer
BufferDataException.java        buffer
IoBuffer.java                   buffer
IoBufferWrapper.java            buffer
AbstractIoBuffer.java           buffer
IoBufferAllocator.java          buffer
CachedBufferAllocator.java      buffer

Just perfect. The IoBufferHexDumper could simply be removed and a static method can be define in utils instead.

DefaultFileRegion.java          file
FileRegion.java                 file
+1
IoFilter.java                   filterchain
IoFilterLifeCycleException.java filterchain
IoFilterChainBuilder.java       filterchain
IoFilterChain.java              filterchain
IoFilterEvent.java              filterchain
IoEvent.java                    filterchain
IoFilterAdapter.java            filterchain
IoEventType.java                filterchain
UnknownMessageTypeException.java filterchain/demux
IMHO, IoEvent and IoEventType belongs to an event package, under the session package.

UnknownMessageTypeException belongs to the session package, too.
IoFuture.java                   future
WriteFuture.java                future
DefaultCloseFuture.java         future
IoFutureListener.java           future
CloseFuture.java                future
CompositeIoFuture.java          future
ConnectFuture.java              future
DefaultWriteFuture.java         future
DefaultIoFuture.java            future
DefaultReadFuture.java          future
DefaultConnectFuture.java       future
ReadFuture.java                 future
Perfect.
AbstractPollingIoConnector.java polling
AbstractPollingIoAcceptor.java  polling
AbstractPollingIoProcessor.java polling
AbstractPollingConnectionlessIoAcceptor.java polling
+1
WriteToClosedSessionException.java service
TransportMetadata.java          service
SimpleIoProcessorPool.java      service
NothingWrittenException.java    service
IoHandlerAdapter.java           service
IoHandler.java                  service
IoProcessor.java                service
IoServiceListenerSupport.java   service
IoServiceListener.java          service
IoService.java                  service
AbstractIoAcceptor.java         service
DefaultIoFilterChain.java       service
DefaultTransportMetadata.java   service
DefaultWriteRequest.java        service
AbstractIoConnector.java        service
AbstractIoService.java          service
DefaultIoFilterChainBuilder.java service
ExpiringSessionRecycler.java    service
IoAcceptor.java                 service
IoConnector.java                service

DefaultIoFilterChain and DefaultIoFilterChainBuilder should be in filterchain, 
I think.

ExpiringSessionRecycler should be in session

DefaultWriteRequest should be in another package, with WriteRequest, 
WriteRequestQueue, WriteRequestWrapper, WriteTimeOutException and 
WriteToClosedSessionException.


IdleStatus.java                 session
WriteException.java             session
AttributeKey.java               session
AbstractIoSession.java          session
WriteRequestWrapper.java        session
WriteTimeoutException.java      session
DummySession.java               session
TrafficMask.java                session
WriteRequestQueue.java          session
WriteRequest.java               session
IoSessionDataStructureFactory.java      session
IoSessionInitializationException.java   session
IoSessionInitializer.java       session
DefaultIoSessionDataStructureFactory.java session
IoSessionAttributeMap.java      session
IdleStatusChecker.java          session
IoSessionRecycler.java          session
IoSession.java                  session
For the two following files, I would create a sub package (config) :

AbstractIoSessionConfig.java    session/config
IoSessionConfig.java            session/config

I think that a 'write' package could be usefull too :

DefaultWriteRequest.java        write
WriteException.java             write
WriteRequest.java               write
WriteRequestQueue.java          write
WriteRequestWrapper.java        write
WriteTimeOutException.java      write




DefaultExceptionMonitor.java    ?
RuntimeIoException.java         ?
IoUtil.java                     ?
ExceptionMonitor.java           ?

Anyway this package is now bloated ;)

So we are close to something better. Should I commit the package modifications ? Here is the new hierarchy :


./org/apache/mina/common/RuntimeIoException.java
./org/apache/mina/common/IoUtil.java
./org/apache/mina/common/ExceptionMonitor.java
./org/apache/mina/common/DefaultExceptionMonitor.java

./org/apache/mina/common/buffer/AbstractIoBuffer.java
./org/apache/mina/common/buffer/BufferDataException.java
./org/apache/mina/common/buffer/IoBuffer.java
./org/apache/mina/common/buffer/SimpleBufferAllocator.java
./org/apache/mina/common/buffer/CachedBufferAllocator.java
./org/apache/mina/common/buffer/IoBufferAllocator.java
./org/apache/mina/common/buffer/IoBufferWrapper.java
./org/apache/mina/common/buffer/IoBufferHexDumper.java

./org/apache/mina/common/file/DefaultFileRegion.java
./org/apache/mina/common/file/FileRegion.java

./org/apache/mina/common/filterchain/DefaultIoFilterChainBuilder.java
./org/apache/mina/common/filterchain/IoFilterEvent.java
./org/apache/mina/common/filterchain/IoFilterLifeCycleException.java
./org/apache/mina/common/filterchain/IoFilterAdapter.java
./org/apache/mina/common/filterchain/DefaultIoFilterChain.java
./org/apache/mina/common/filterchain/IoFilterChain.java
./org/apache/mina/common/filterchain/IoFilterChainBuilder.java
./org/apache/mina/common/filterchain/IoFilter.java

./org/apache/mina/common/future/ReadFuture.java
./org/apache/mina/common/future/DefaultWriteFuture.java
./org/apache/mina/common/future/DefaultCloseFuture.java
./org/apache/mina/common/future/DefaultReadFuture.java
./org/apache/mina/common/future/CompositeIoFuture.java
./org/apache/mina/common/future/DefaultConnectFuture.java
./org/apache/mina/common/future/ConnectFuture.java
./org/apache/mina/common/future/IoFutureListener.java
./org/apache/mina/common/future/WriteFuture.java
./org/apache/mina/common/future/CloseFuture.java
./org/apache/mina/common/future/DefaultIoFuture.java
./org/apache/mina/common/future/IoFuture.java

./org/apache/mina/common/polling/AbstractPollingIoProcessor.java
./org/apache/mina/common/polling/AbstractPollingIoAcceptor.java
./org/apache/mina/common/polling/AbstractPollingIoConnector.java
./org/apache/mina/common/polling/AbstractPollingConnectionlessIoAcceptor.java

./org/apache/mina/common/service/IoProcessor.java
./org/apache/mina/common/service/AbstractIoService.java
./org/apache/mina/common/service/IoAcceptor.java
./org/apache/mina/common/service/IoConnector.java
./org/apache/mina/common/service/IoHandlerAdapter.java
./org/apache/mina/common/service/SimpleIoProcessorPool.java
./org/apache/mina/common/service/IoService.java
./org/apache/mina/common/service/IoHandler.java
./org/apache/mina/common/service/IoServiceListenerSupport.java
./org/apache/mina/common/service/AbstractIoConnector.java
./org/apache/mina/common/service/IoServiceListener.java
./org/apache/mina/common/service/DefaultTransportMetadata.java
./org/apache/mina/common/service/AbstractIoAcceptor.java
./org/apache/mina/common/service/TransportMetadata.java

./org/apache/mina/common/session/TrafficMask.java
./org/apache/mina/common/session/IoSessionRecycler.java
./org/apache/mina/common/session/DummySession.java
./org/apache/mina/common/session/IdleStatus.java
./org/apache/mina/common/session/IoSessionInitializationException.java
./org/apache/mina/common/session/IoSessionAttributeMap.java
./org/apache/mina/common/session/DefaultIoSessionDataStructureFactory.java
./org/apache/mina/common/session/AbstractIoSession.java
./org/apache/mina/common/session/ExpiringSessionRecycler.java
./org/apache/mina/common/session/IoSessionInitializer.java
./org/apache/mina/common/session/AttributeKey.java
./org/apache/mina/common/session/IdleStatusChecker.java
./org/apache/mina/common/session/IoSession.java
./org/apache/mina/common/session/UnknownMessageTypeException.java
./org/apache/mina/common/session/IoSessionDataStructureFactory.java

./org/apache/mina/common/session/config/IoSessionConfig.java
./org/apache/mina/common/session/config/AbstractIoSessionConfig.java

./org/apache/mina/common/session/event/IoEvent.java
./org/apache/mina/common/session/event/IoEventType.java

./org/apache/mina/common/write/WriteRequest.java
./org/apache/mina/common/write/WriteToClosedSessionException.java
./org/apache/mina/common/write/WriteRequestQueue.java
./org/apache/mina/common/write/DefaultWriteRequest.java
./org/apache/mina/common/write/WriteException.java
./org/apache/mina/common/write/NothingWrittenException.java
./org/apache/mina/common/write/WriteTimeoutException.java
./org/apache/mina/common/write/WriteRequestWrapper.java

./org/apache/mina/common/RuntimeIoException.java
./org/apache/mina/common/IoUtil.java
./org/apache/mina/common/ExceptionMonitor.java
./org/apache/mina/common/DefaultExceptionMonitor.java


Any different POV ?

Thanks !

--
--
cordialement, regards,
Emmanuel Lécharny
www.iktek.com
directory.apache.org


Reply via email to