I've created a sample to show how Persistence Units can be injected in a typesafe manner using CDI. The complete source code of the sample is available at:
The application has one Persistence Unit and is "produced" as:
But when injected in an EJB as:
the sampleEM returns null. Injecting the PU the traditional way as:
seems to work.
Attached file provides the sample.