in jpa-container/src/main/java/org/apache/aries/jpa/container/impl/AriesEntityManagerFactoryBuilder.java [104:129]
private ServiceTracker<?, ?> createDataSourceTracker(PersistenceProvider provider) {
if (usesDataSource()) {
synchronized (this) {
driver = "Pre Configured DataSource";
}
if (!usesDataSourceService()) {
LOGGER.warn("Persistence unit " + persistenceUnit.getPersistenceUnitName() + " refers to a non OSGi service DataSource");
return null;
}
DataSourceTracker dsTracker = new DataSourceTracker(containerContext, this,
DataSourceTracker.getDsName(persistenceUnit));
return dsTracker;
} else if (usesDSF()) {
String jdbcClass = DSFTracker.getDriverName(persistenceUnit);
synchronized (this) {
driver = jdbcClass;
}
DSFTracker dsfTracker = new DSFTracker(containerContext, this,
jdbcClass);
return dsfTracker;
} else {
LOGGER.debug("Persistence unit " + getPUName() + " does not refer a DataSource. "
+"It can only be used with EntityManagerFactoryBuilder.");
return null;
}
}