private void initProviders() { jpaProvider.setItemLabelConverter(PersistenceProvider::getName); // select Hibernate provider as the default one final PersistenceProvider hibernate = StreamSupport.stream(jpaProvider.getValueChoices().spliterator(), false) .filter(provider -> provider.getName().toLowerCase().contains("hibernate")) .findFirst() .orElseThrow(() -> new IllegalStateException("Hibernate Persistence Provider is not available")); jpaProvider.setDefaultValue(hibernate); }
@SuppressWarnings({ "rawtypes", "unchecked" }) private MetaModelProvider lookupProvider() { PersistenceCommonDescriptor config = (PersistenceCommonDescriptor) getFaceted().getFacet(JPAFacet.class) .getConfig(); List<PersistenceUnitCommon> allPersistenceUnit = config.getAllPersistenceUnit(); String providerName = allPersistenceUnit.size() > 0 ? allPersistenceUnit.get(0) .getProvider() : null; Imported<PersistenceProvider> services = SimpleContainer.getServices(getClass().getClassLoader(), PersistenceProvider.class); for (PersistenceProvider candidate : services) { try { if (Strings.compare(candidate.getProvider(), providerName)) { return candidate.getMetaModelProvider(); } } finally { services.release(candidate); } } // return Hibernate return services.get().getMetaModelProvider(); }
public void validate() throws Exception { getContainer().validate(this); getProvider().validate(this); } }