-
Notifications
You must be signed in to change notification settings - Fork 2.5k
/
HibernateSearchElasticsearchDevConsoleProcessor.java
40 lines (34 loc) · 2.1 KB
/
HibernateSearchElasticsearchDevConsoleProcessor.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package io.quarkus.hibernate.search.orm.elasticsearch.devconsole;
import static io.quarkus.deployment.annotations.ExecutionTime.RUNTIME_INIT;
import static io.quarkus.deployment.annotations.ExecutionTime.STATIC_INIT;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
import io.quarkus.deployment.IsDevelopment;
import io.quarkus.deployment.annotations.BuildStep;
import io.quarkus.deployment.annotations.Record;
import io.quarkus.deployment.pkg.builditem.CurateOutcomeBuildItem;
import io.quarkus.devconsole.spi.DevConsoleRouteBuildItem;
import io.quarkus.devconsole.spi.DevConsoleRuntimeTemplateInfoBuildItem;
import io.quarkus.hibernate.search.orm.elasticsearch.HibernateSearchElasticsearchPersistenceUnitConfiguredBuildItem;
import io.quarkus.hibernate.search.orm.elasticsearch.runtime.HibernateSearchElasticsearchRuntimeConfig;
import io.quarkus.hibernate.search.orm.elasticsearch.runtime.devconsole.HibernateSearchDevConsoleRecorder;
public class HibernateSearchElasticsearchDevConsoleProcessor {
@BuildStep(onlyIf = IsDevelopment.class)
@Record(RUNTIME_INIT)
public DevConsoleRuntimeTemplateInfoBuildItem collectBeanInfo(HibernateSearchDevConsoleRecorder recorder,
HibernateSearchElasticsearchRuntimeConfig runtimeConfig,
CurateOutcomeBuildItem curateOutcomeBuildItem,
List<HibernateSearchElasticsearchPersistenceUnitConfiguredBuildItem> peristenceUnitBuildItems) {
Set<String> persistenceUnitNames = peristenceUnitBuildItems.stream()
.map(HibernateSearchElasticsearchPersistenceUnitConfiguredBuildItem::getPersistenceUnitName)
.collect(Collectors.toSet());
return new DevConsoleRuntimeTemplateInfoBuildItem("indexedPersistenceUnits",
recorder.infoSupplier(runtimeConfig, persistenceUnitNames), this.getClass(), curateOutcomeBuildItem);
}
@BuildStep
@Record(value = STATIC_INIT, optional = true)
DevConsoleRouteBuildItem invokeEndpoint(HibernateSearchDevConsoleRecorder recorder) {
return new DevConsoleRouteBuildItem("entity-types", "POST", recorder.indexEntity());
}
}