@Override protected EntityManagerFactory createNativeEntityManagerFactory() throws PersistenceException { Assert.state(this.persistenceUnitInfo != null, "PersistenceUnitInfo not initialized"); PersistenceProvider provider = getPersistenceProvider(); if (provider == null) { String providerClassName = this.persistenceUnitInfo.getPersistenceProviderClassName(); if (providerClassName == null) { throw new IllegalArgumentException( "No PersistenceProvider specified in EntityManagerFactory configuration, " + "and chosen PersistenceUnitInfo does not specify a provider class name either"); } Class<?> providerClass = ClassUtils.resolveClassName(providerClassName, getBeanClassLoader()); provider = (PersistenceProvider) BeanUtils.instantiateClass(providerClass); } if (logger.isDebugEnabled()) { logger.debug("Building JPA container EntityManagerFactory for persistence unit '" + this.persistenceUnitInfo.getPersistenceUnitName() + "'"); } EntityManagerFactory emf = provider.createContainerEntityManagerFactory(this.persistenceUnitInfo, getJpaPropertyMap()); postProcessEntityManagerFactory(emf, this.persistenceUnitInfo); return emf; }
@Override protected EntityManagerFactory createNativeEntityManagerFactory() throws PersistenceException { Assert.state(this.persistenceUnitInfo != null, "PersistenceUnitInfo not initialized"); PersistenceProvider provider = getPersistenceProvider(); if (provider == null) { String providerClassName = this.persistenceUnitInfo.getPersistenceProviderClassName(); if (providerClassName == null) { throw new IllegalArgumentException( "No PersistenceProvider specified in EntityManagerFactory configuration, " + "and chosen PersistenceUnitInfo does not specify a provider class name either"); } Class<?> providerClass = ClassUtils.resolveClassName(providerClassName, getBeanClassLoader()); provider = (PersistenceProvider) BeanUtils.instantiateClass(providerClass); } if (logger.isDebugEnabled()) { logger.debug("Building JPA container EntityManagerFactory for persistence unit '" + this.persistenceUnitInfo.getPersistenceUnitName() + "'"); } EntityManagerFactory emf = provider.createContainerEntityManagerFactory(this.persistenceUnitInfo, getJpaPropertyMap()); postProcessEntityManagerFactory(emf, this.persistenceUnitInfo); return emf; }
/** {@inheritDoc} */ @SuppressWarnings("rawtypes") @Override public EntityManagerFactory createContainerEntityManagerFactory(final PersistenceUnitInfo info, final Map map) { initJpaCounter(); final PersistenceProvider persistenceProvider = findDelegate(map); // on surcharge PersistenceUnitInfo.getPersistenceProviderClassName() // pour retourner le PersistenceProvider délégué et pas nous même final PersistenceUnitInfo proxiedInfo = createPersistentUnitInfoProxy(info, persistenceProvider); final EntityManagerFactory entityManagerFactory = persistenceProvider .createContainerEntityManagerFactory(proxiedInfo, map); if (entityManagerFactory == null) { return null; } return JpaWrapper.createEntityManagerFactoryProxy(entityManagerFactory); }
/** * @inheritDoc */ @Override public EntityManagerFactory createContainerEntityManagerFactory(final PersistenceUnitInfo thePersistenceUnitInfo, final Map theMap) { return getPersistenceProvider().createContainerEntityManagerFactory(thePersistenceUnitInfo, theMap); }
@Override public EntityManagerFactory createEntityManagerFactory(Map<String, Object> props) { return puInfo.getProvider().createContainerEntityManagerFactory(puInfo, props); } }
@Override public @Nonnull EntityManager getEntityManager(@Nonnull String name) { if (name.isEmpty()) { throw new IllegalArgumentException("The persistence unit name should not be empty"); } if (!this.persistenceUnits.containsKey(name)) { throw new NoSuchElementException(); } List<Class<?>> entities = this.persistenceUnits.get(name); List<String> entitiesNames = Lists.transform(entities, Class::getName); PersistenceUnitInfo persistenceUnitInfo = new PersistenceUnitInfoImpl(name, entitiesNames, entities.get(0).getClassLoader(), this.hibernateFix); Map<String, String> properties = new HashMap<>(); String string = this.environment.getWorkingDirectory().resolve(this.dataDir).resolve(name).toAbsolutePath() .toString(); properties.put("javax.persistence.jdbc.url", "jdbc:h2:" + string); EntityManagerFactory entityManagerFactory = this.persistenceProvider .createContainerEntityManagerFactory(persistenceUnitInfo, properties); return entityManagerFactory.createEntityManager(); }
private void activatePersistenceUnit(PersistenceUnitInfoImpl puInfo) { PersistenceProvider provider = puInfo.getProvider(); Bundle bundle = puInfo.getBundle(); Properties emfProps = (Properties) puInfo.getProperties(); EntityManagerFactory emf = provider.createContainerEntityManagerFactory(puInfo, emfProps); Dictionary<String, String> emfServiceProps = new Hashtable<String, String>(); emfServiceProps.put(JPA_UNIT_NAME, puInfo.getPersistenceUnitName()); emfServiceProps.put(JPA_UNIT_VERSION, bundle.getVersion().toString()); emfServiceProps.put(JPA_UNIT_PROVIDER, provider.getClass().getName()); ServiceRegistration<EntityManagerFactory> reg = bundle.getBundleContext().registerService( EntityManagerFactory.class, emf, emfServiceProps); puInfo.setEmfRegistration(reg); puInfo.setState(PersistenceUnitState.COMPLETE); }
void init(final PersistenceUnitInfo info, final BeanManager bm) { final PersistenceProvider provider; try { provider = PersistenceProvider.class.cast( Thread.currentThread().getContextClassLoader().loadClass(info.getPersistenceProviderClassName()).newInstance()); } catch (final InstantiationException | IllegalAccessException | ClassNotFoundException e) { throw new IllegalArgumentException("Bad provider: " + info.getPersistenceProviderClassName()); } final EntityManagerFactory factory = provider.createContainerEntityManagerFactory(info, new HashMap() {{ put("javax.persistence.bean.manager", bm); if (ValidationMode.NONE != info.getValidationMode()) { ofNullable(findValidatorFactory(bm)).ifPresent(factory -> put("javax.persistence.validation.factory", factory)); } }}); instanceFactory = synchronization == SynchronizationType.SYNCHRONIZED ? factory::createEntityManager : () -> factory.createEntityManager(synchronization); }
/** * エンティティマネジャーファクトリを作成します。 * * @param provider * 永続プロバイダ * @param unitInfo * 永続ユニット情報 * @return エンティティマネジャーファクトリ */ protected EntityManagerFactory createEntityManagerFactory( final PersistenceProvider provider, final PersistenceUnitInfoImpl unitInfo) { final ClassLoader original = Thread.currentThread() .getContextClassLoader(); final TransformClassLoader transLoader = unitInfo .getTransformClassLoader(); transLoader .registerPersistenceClassTransformer(persistenceClassTransformer); transLoader.registerPersistenceUnitInfo(unitInfo); Thread.currentThread().setContextClassLoader(transLoader); try { return provider.createContainerEntityManagerFactory(unitInfo, null); } finally { Thread.currentThread().setContextClassLoader(original); } }
public EntityManagerFactory lookupEntityManagerFactory(String name) { return entityManagerFactoryMap.computeIfAbsent(name, s -> { PersistenceUnitInfo persistenceUnitInfo = jpaExtension.getPersistenceUnitInfo(name); if (s.equals(DEFAULT_EMF) && persistenceUnitInfo == null) { persistenceUnitInfo = getDefaultPersistenceUnitInfo(); } if (persistenceUnitInfo != null) { PersistenceProvider provider = getPersistenceProvider(); return provider.createContainerEntityManagerFactory(persistenceUnitInfo, emptyMap()); } else { Map<String, String> properties = ConfigLoader.loadAllProperties(createPrefix(s), true); return Persistence.createEntityManagerFactory(s, properties); } }); }
@SuppressWarnings("unchecked") EntityManagerFactory createEntityManagerFactory(final String persistenceUnitName) { for (final TapestryPersistenceUnitInfo info : persistenceUnitInfos) { if (info.getPersistenceUnitName().equals(persistenceUnitName)) { final Map properties = info.getEntityManagerProperties() == null ? CollectionFactory.newCaseInsensitiveMap() : info.getEntityManagerProperties(); properties.put(JpaConstants.PERSISTENCE_UNIT_NAME, persistenceUnitName); String providerClassName = info.getPersistenceProviderClassName(); final PersistenceProvider persistenceProvider = getPersistenceProvider(persistenceUnitName, providerClassName); return persistenceProvider.createContainerEntityManagerFactory(info, properties); } } throw new IllegalStateException(String.format( "Failed to create EntityManagerFactory for persistence unit '%s'", persistenceUnitName)); }
@SuppressWarnings("unchecked") EntityManagerFactory createEntityManagerFactory(final String persistenceUnitName) { for (final TapestryPersistenceUnitInfo info : persistenceUnitInfos) { if (info.getPersistenceUnitName().equals(persistenceUnitName)) { final Map properties = info.getEntityManagerProperties() == null ? CollectionFactory.newCaseInsensitiveMap() : info.getEntityManagerProperties(); properties.put(JpaConstants.PERSISTENCE_UNIT_NAME, persistenceUnitName); String providerClassName = info.getPersistenceProviderClassName(); final PersistenceProvider persistenceProvider = getPersistenceProvider(persistenceUnitName, providerClassName); return persistenceProvider.createContainerEntityManagerFactory(info, properties); } } throw new IllegalStateException(String.format( "Failed to create EntityManagerFactory for persistence unit '%s'", persistenceUnitName)); }
_emfDelegate = provider.createContainerEntityManagerFactory(this, map);
private EntityManagerFactory createEntityManagerFactory(InternalPersistenceUnitInfo info) { EntityManagerFactory fac = null; List<PersistenceProvider> persistenceProviders = PersistenceProviderResolverHolder .getPersistenceProviderResolver().getPersistenceProviders(); for (PersistenceProvider persistenceProvider : persistenceProviders) { info.setPersistenceProviderClassName(persistenceProvider.getClass().getName()); fac = persistenceProvider.createContainerEntityManagerFactory(info, null); if (fac != null) { break; } } if (fac == null) { throw new PersistenceException( "No Persistence provider for persistence unit " + info.getPersistenceUnitName()); } return fac; } }
/** * Create and close a dummy EMF to give the PersistenceProvider a chance to call * punit.addTransformer(). This has to occur as early as possible as weaving needs * to be done before the first entity class is loaded. So we can not wait till the * real DataSource is found. */ private void createAndCloseDummyEMF(PersistenceProvider provider) { DataSource dummyDataSource = new DummyDataSource(); punit.setJtaDataSource(dummyDataSource); punit.setNonJtaDataSource(dummyDataSource); try { EntityManagerFactory emf = provider.createContainerEntityManagerFactory(punit, null); emf.close(); } catch (Exception e) { LOGGER.debug("Error while creating the Dummy EntityManagerFactory to allow weaving.", e); } punit.setJtaDataSource(null); punit.setNonJtaDataSource(null); }
/** {@inheritDoc} */ @SuppressWarnings("rawtypes") @Override public EntityManagerFactory createContainerEntityManagerFactory(final PersistenceUnitInfo info, final Map map) { initJpaCounter(); final PersistenceProvider persistenceProvider = findDelegate(map); // on surcharge PersistenceUnitInfo.getPersistenceProviderClassName() // pour retourner le PersistenceProvider délégué et pas nous même final PersistenceUnitInfo proxiedInfo = createPersistentUnitInfoProxy(info, persistenceProvider); final EntityManagerFactory entityManagerFactory = persistenceProvider .createContainerEntityManagerFactory(proxiedInfo, map); if (entityManagerFactory == null) { return null; } return JpaWrapper.createEntityManagerFactoryProxy(entityManagerFactory); }
@Override protected EntityManagerFactory createNativeEntityManagerFactory() throws PersistenceException { Assert.state(this.persistenceUnitInfo != null, "PersistenceUnitInfo not initialized"); PersistenceProvider provider = getPersistenceProvider(); if (provider == null) { String providerClassName = this.persistenceUnitInfo.getPersistenceProviderClassName(); if (providerClassName == null) { throw new IllegalArgumentException( "No PersistenceProvider specified in EntityManagerFactory configuration, " + "and chosen PersistenceUnitInfo does not specify a provider class name either"); } Class<?> providerClass = ClassUtils.resolveClassName(providerClassName, getBeanClassLoader()); provider = (PersistenceProvider) BeanUtils.instantiateClass(providerClass); } if (logger.isDebugEnabled()) { logger.debug("Building JPA container EntityManagerFactory for persistence unit '" + this.persistenceUnitInfo.getPersistenceUnitName() + "'"); } EntityManagerFactory emf = provider.createContainerEntityManagerFactory(this.persistenceUnitInfo, getJpaPropertyMap()); postProcessEntityManagerFactory(emf, this.persistenceUnitInfo); return emf; }
public void init(Application<? extends ApplicationConfiguration> application) { List<PersistenceProvider> providers = getProviders(); if (providers == null || providers.isEmpty()) { throw new MinnalException("No JPA persistence provider found"); } PersistenceProvider provider = providers.get(0); PersistenceUnitInfo info = createPersistenceUnitInfo(application.getConfiguration(), provider); factory = provider.createContainerEntityManagerFactory(info, null); JPA.instance.addPersistenceUnit(info.getPersistenceUnitName(), factory); application.addListener(new JerseyApplicationEventListener(application.getConfiguration().getDatabaseConfiguration())); }
/** * Create EE container entity manager factory * * @return EntityManagerFactory */ private EntityManagerFactory createContainerEntityManagerFactory() { persistenceProviderAdaptor.beforeCreateContainerEntityManagerFactory(pu); try { ROOT_LOGGER.tracef("calling createContainerEntityManagerFactory for pu=%s with integration properties=%s, application properties=%s", pu.getScopedPersistenceUnitName(), properties, pu.getProperties()); return persistenceProvider.createContainerEntityManagerFactory(pu, properties); } finally { try { persistenceProviderAdaptor.afterCreateContainerEntityManagerFactory(pu); } finally { pu.setAnnotationIndex(null); // close reference to Annotation Index (only needed during call to createContainerEntityManagerFactory) //This is needed if the datasource is restarted //pu.setTempClassLoaderFactory(null); // close reference to temp classloader factory (only needed during call to createEntityManagerFactory) } } }
/** * Create EE container entity manager factory * * @return EntityManagerFactory */ private EntityManagerFactory createContainerEntityManagerFactory() { persistenceProviderAdaptor.beforeCreateContainerEntityManagerFactory(pu); try { ROOT_LOGGER.tracef("calling createContainerEntityManagerFactory for pu=%s with integration properties=%s, application properties=%s", pu.getScopedPersistenceUnitName(), properties.getValue(), pu.getProperties()); return persistenceProvider.createContainerEntityManagerFactory(pu, properties.getValue()); } finally { try { persistenceProviderAdaptor.afterCreateContainerEntityManagerFactory(pu); } finally { pu.setAnnotationIndex(null); // close reference to Annotation Index (only needed during call to createContainerEntityManagerFactory) //This is needed if the datasource is restarted //pu.setTempClassLoaderFactory(null); // close reference to temp classloader factory (only needed during call to createEntityManagerFactory) } } }