A custom persistence.xml "version" property can be introduced to match the persistence providers version tag.
If we were to do this via "module" packaging, Hibernate 3 could be resolve via a dropped in Hibernate 3 module.
Why a custom "version" property?
I would simply do this:
- is it Hibernate provider (no provider == Hibernate)
- is there explicit Hibernate module defined in jboss-deployment-structure.xml / attachments
- no explicit Hibernate module == the default used in AS7 -- v4
- do the same for other JPA providers
- for each provider define its module name; perhaps even ship few with AS7?
- have default versions, check for explicit diff module version