A lot of io classes currently located in o.a.h.bsp have a dependency to BSP, BSPJob, BSPPeer.
e.g., PartitioningRunner needs BSP, BSPPeer
If we would add PartitioningRunner and others to o.a.h.c.io (commons) we would need a dependency from commons to core, which would lead to a cyclic one.
Therefore it's not possible to combine all io classes in commons without moving BSP, BSPJob, BSPPeer from core to commons!
o.a.h.c.io.writable.* don't need a dependency to core therefore we can isolate them in commons.
So the dependency issue is not between o.a.h.c.io.* and o.a.h.c.io.writable.*, it's a cyclic dependency between commons and core module.