private ServiceTracker createDataSourceTracker()

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;
        }
    }