in tx-control-providers/jpa/tx-control-provider-jpa-common/src/main/java/org/apache/aries/tx/control/jpa/common/impl/AbstractManagedJPADataSourceSetup.java [109:132]
protected abstract Map<String, Object> decorateJPAProperties(DataSourceFactory dsf,
Map<String, Object> providerProperties, Properties jdbcProperties,
Map<String, Object> jpaProperties);
protected abstract void cleanupOnClose(Map<String, Object> jpaProperties);
protected abstract AbstractManagedJPAEMFLocator getManagedJPAEMFLocator(BundleContext context, String pid,
Supplier<Map<String, Object>> jpaProps, Map<String, Object> providerProperties, Consumer<Map<String, Object>> onClose) throws Exception;
private void updateService(ServiceReference<DataSourceFactory> reference, AbstractManagedJPAEMFLocator locator) {
boolean setDsf;
synchronized (this) {
setDsf = activeDsf.compareAndSet(null, reference);
}
try {
if (setDsf) {
locator.start();
}
} catch (Exception e) {
LOG.error("An error occurred when creating the connection provider for {}.", pid, e);
activeDsf.compareAndSet(reference, null);
throw new IllegalStateException("An error occurred when creating the connection provider", e);
}
}