This package contains datastructures like queues and maps written to be used in STM transactions. The idea is to provide transactional implementations of the java collection framework interfaces. Also an additional interface is introduced for transactional collections that extend the original one. Using this transactional interface instead of the original one clearly indicates to a developer that an object of this type is transactional. Another advantage is that the instrumentation is able to do a instrumentation improvements.

Since Multiverse 0.5 it is possible to add annotations on interfaces so that they are used at the implementation. This is one of the things I normally hate with annotations because they don't inherit; well in Multiverse they do. A practical example of this ugly ness is the transaction support in Spring where you need to define the transaction settings on the implementation instead of the interface.