public AbstractJPAEntityManagerProvider getProviderFor()

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, () -> {});
	}