diff --git a/extensions/spring-data-jpa/deployment/src/main/java/io/quarkus/spring/data/deployment/SpringDataJPAProcessor.java b/extensions/spring-data-jpa/deployment/src/main/java/io/quarkus/spring/data/deployment/SpringDataJPAProcessor.java index b32e2435b55a0f..b6f28e26c6f755 100644 --- a/extensions/spring-data-jpa/deployment/src/main/java/io/quarkus/spring/data/deployment/SpringDataJPAProcessor.java +++ b/extensions/spring-data-jpa/deployment/src/main/java/io/quarkus/spring/data/deployment/SpringDataJPAProcessor.java @@ -1,18 +1,18 @@ package io.quarkus.spring.data.deployment; +import static java.util.stream.Collectors.*; + import java.lang.reflect.Modifier; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Set; +import java.util.*; +import org.eclipse.microprofile.config.Config; +import org.eclipse.microprofile.config.ConfigProvider; import org.jboss.jandex.ClassInfo; import org.jboss.jandex.CompositeIndex; import org.jboss.jandex.DotName; import org.jboss.jandex.IndexView; import org.jboss.jandex.Indexer; +import org.jboss.logging.Logger; import org.springframework.data.domain.Auditable; import org.springframework.data.domain.Persistable; import org.springframework.data.jpa.repository.JpaRepository; @@ -35,6 +35,8 @@ public class SpringDataJPAProcessor { + private static final Logger LOGGER = Logger.getLogger(SpringDataJPAProcessor.class.getName()); + @BuildStep FeatureBuildItem registerFeature() { return new FeatureBuildItem(FeatureBuildItem.SPRING_DATA_JPA); @@ -53,6 +55,27 @@ void build(CombinedIndexBuildItem index, BuildProducer generatedBeans, BuildProducer additionalBeans) { + Config config = ConfigProvider.getConfig(); + Optional springJpaConfig = config.getOptionalValue("spring.jpa.show-sql", String.class); + Map springJpaPropertiesMap = new HashMap<>(); + springJpaPropertiesMap.put("spring.jpa.show-sql", "quarkus.hibernate-orm.log.sql"); + springJpaPropertiesMap.put("spring.jpa.properties.hibernate.dialect ", "quarkus.hibernate-orm.dialect"); + springJpaPropertiesMap.put("spring.jpa.properties.hibernate.dialect.storage_engine", + "quarkus.hibernate-orm.dialect.storage-engine"); + springJpaPropertiesMap.put("spring.jpa.generate-ddl", "quarkus.hibernate-orm.database.generation"); + + Iterable iterablePropertyNames = config.getPropertyNames(); + List propertyNames = new ArrayList(); + iterablePropertyNames.forEach(propertyNames::add); + List springProperties = propertyNames.stream().filter(s -> s.matches("spring.jpa.*")).collect(toList()); + if (!springProperties.isEmpty()) { + for (String springProperty : springProperties) { + LOGGER.warn("Quarkus does not support the " + springProperty + + " you may try to use the quarkus equivalent : " + springJpaPropertiesMap.get(springProperty)); + } + + } + IndexView indexIndex = index.getIndex(); List interfacesExtendingCrudRepository = getAllInterfacesExtending(DotNames.SUPPORTED_REPOSITORIES, indexIndex);