The 1.0.0.Final version of the jboss-transaction-api_1.1_spec is not an OSGi bundle, which means that gradle can't work out what the import range should be when it builds your OSGi manifests. The 1.0.1.Final version is an OSGi bundle and means that gradle sorts out the version range for you. There shouldn't be any difference in the API classes.

Generated manifest

Before:

    Import-Package: ....javax.transaction,javax.transaction.xa

After:

    Import-Package: ....javax.transaction;version="[1.1,2)",javax.transaction.xa;version="[1.1,2)"

Without a version range the hibernate bundles can wire to version 0.0.0 of the package (exported by the JDK). This doesn't contain much, and causes Hibernate to explode when trying to load javax.transaction.SystemException