Add unit tests on the sandbox project. In order to avoid name conflicts between the unit test classes and the integration test classes, the name of all integration test classes end now with 'IntegrationTest'. The unit tests work only on the class to test and by mocking all of its either direct or transitive dependency. In order to facilitate the unit testing, the business and utilitary classes are lightly improved; for example, the ServiceProvider delegates now the bean obtaining to a BeanContainer implementation with a CDI container wrapper as a default implementation. Beside that, usually the business or utilitary classes have just an additional method to easy the mocking of dependency that is otherwise managed by a bean manager (CDI, Spring, Guice, ...). So, the unit test doesn't require the bootstrap of a JEE application server or a CDI container enriched with JEE stuffs and as a consequency they are run very fast (4s in my laptop). By activating the integration-test profile, both the unit and integration tests are executed (they take 1mn in my laptop).
Refine the way the ServiceProvider gets the underlying implementation of a BeanContainer: it uses now the services of the Java ServiceLoader. Adds a new way to access the beans managed by CDI: a BeanProvider interface is defined with an implementation by default for its methods for accessing a CDI-managed Bean, and from which each implementation define an access of a specific bean type.