in tx-control-providers/jpa/tx-control-provider-jpa-xa/src/main/java/org/apache/aries/tx/control/jpa/xa/impl/JPAEntityManagerProviderFactoryImpl.java [88:108]
public AbstractJPAEntityManagerProvider getProviderFor(EntityManagerFactoryBuilder emfb, Map<String, Object> jpaProperties,
Map<String, Object> resourceProviderProperties) {
Map<String, Object> jpaPropsToUse = jpaProperties == null ? new HashMap<>() :
new HashMap<>(jpaProperties);
jpaPropsToUse.put(TRANSACTION_TYPE, JTA.name());
Map<String, Object> resourceProviderPropsToUse = resourceProviderProperties == null ? new HashMap<>() :
new HashMap<>(resourceProviderProperties);
Function<ThreadLocal<TransactionControl>, AbstractJPAEntityManagerProvider> create;
if(resourceProviderPropsToUse.containsKey(TRANSACTIONAL_DB_CONNECTION)) {
create = handleJDBCResourceProvider(emfb, resourceProviderPropsToUse, jpaPropsToUse);
} else if(toBoolean(jpaPropsToUse, PRE_ENLISTED_DB_CONNECTION, false)) {
create = handlePreEnlistedConnection(emfb, resourceProviderPropsToUse, jpaPropsToUse);
} else {
create = handleNormalDataSource(emfb, resourceProviderPropsToUse, jpaPropsToUse);
}
return new DelayedJPAEntityManagerProvider(create, () -> {});
}