I would try to make sure using users Hibernate version is painless as possible.
e.g. clear split between interfaces used in AS code vs. impl;
* AS code would only use EntityManager(Factory), Session(Factory), ... in a jar with interfaces
* if users bundles his own version of (compatible) Hibernate, that impl would be used over those interfaces
And example of this usage is this demo/test we assebled together with Emmanuel:
* https://github.com/alesj/hib-in-war/commit/a320e0a2bfe3e9cdf5524ea81da0ef34413ab46f
I would guess if the split is done right,
AS container could still manage users JPA usage,
while at the same time using his bundled Hibernate version.
With the current AS6 usage (in that demo/test), user has to manage JPA on its own.