Calling ServiceBuilder.install() doesn't result in all dependencies being satisfied before the method returns.

If createManagementStatisticsResource() is made static, the existingResourceDescriptionResolver map would have to be static. Not so nice. Reading that code though, does that field need to be a Map? Couldn't it be a Set<String>? The value read from the map is never used.

This code is running as part of the start() method for a DeploymentUnitPhaseService. A DUP in the previous phase could add a dependency on JPAService to this DeploymentUnitPhaseService. That's a fairly complicated way to solve this though.