Skip to content

Commit a971d7e

Browse files
committed
HSEARCH-5300 Experiment with the annotation processor to generate the metamodel
1 parent 266644f commit a971d7e

File tree

89 files changed

+3781
-158
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

89 files changed

+3781
-158
lines changed

bom/public/pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,11 @@
9292
<artifactId>hibernate-search-mapper-orm-outbox-polling</artifactId>
9393
<version>${project.version}</version>
9494
</dependency>
95+
<dependency>
96+
<groupId>org.hibernate.search</groupId>
97+
<artifactId>hibernate-search-metamodel-processor</artifactId>
98+
<version>${project.version}</version>
99+
</dependency>
95100
<!-- Relocation artifacts: -->
96101
<dependency>
97102
<groupId>org.hibernate.search</groupId>

build/config/src/main/java/org/hibernate/search/build/report/loggers/LoggerCategoriesProcessor.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import java.io.Writer;
1010
import java.nio.charset.StandardCharsets;
1111
import java.util.ArrayList;
12-
import java.util.Collection;
1312
import java.util.Collections;
1413
import java.util.LinkedHashMap;
1514
import java.util.List;

build/enforcer/src/main/java/org/hibernate/search/build/enforcer/MavenProjectUtils.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ public class MavenProjectUtils {
1111
public static final String HIBERNATE_SEARCH_PARENT_PUBLIC = "hibernate-search-parent-public";
1212
public static final String HIBERNATE_SEARCH_PARENT_PUBLIC_LUCENE_NEXT = "hibernate-search-parent-public-lucene-next";
1313
public static final String HIBERNATE_SEARCH_PARENT_INTEGRATION_TEST = "hibernate-search-parent-integrationtest";
14-
public static final String HIBERNATE_SEARCH_PARENT_INTEGRATION_TEST_LUCENE_NEXT = "hibernate-search-parent-integrationtest-lucene-next";
14+
public static final String HIBERNATE_SEARCH_PARENT_INTEGRATION_TEST_LUCENE_NEXT =
15+
"hibernate-search-parent-integrationtest-lucene-next";
1516
public static final String HIBERNATE_SEARCH_PARENT_RELOCATION = "hibernate-search-parent-relocation";
1617
public static final String DEPLOY_SKIP = "deploy.skip";
1718

@@ -35,7 +36,7 @@ public static boolean isAnyParentRelocationParent(MavenProject project) {
3536
public static boolean isAnyParentIntegrationTestParent(MavenProject project) {
3637
return project.hasParent()
3738
&& ( HIBERNATE_SEARCH_PARENT_INTEGRATION_TEST.equals( project.getParent().getArtifactId() )
38-
|| HIBERNATE_SEARCH_PARENT_INTEGRATION_TEST_LUCENE_NEXT.equals( project.getParent().getArtifactId() )
39+
|| HIBERNATE_SEARCH_PARENT_INTEGRATION_TEST_LUCENE_NEXT.equals( project.getParent().getArtifactId() )
3940
|| isAnyParentIntegrationTestParent( project.getParent() ) );
4041
}
4142

build/jqassistant/rules/rules.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -281,6 +281,7 @@
281281
WHEN 'hibernate-search-mapper-orm' THEN 'HibernateOrm'
282282
WHEN 'hibernate-search-mapper-orm-outbox-polling' THEN 'OutboxPolling'
283283
WHEN 'hibernate-search-mapper-orm-jakarta-batch-jberet' THEN 'JBeret'
284+
WHEN 'hibernate-search-metamodel-processor' THEN 'Processor'
284285
ELSE 'UNKNOWN-MODULE-SPECIFIC-KEYWORD-PLEASE-UPDATE-JQASSISTANT-RULES'
285286
END
286287
RETURN
@@ -362,6 +363,7 @@
362363
AND NOT type.name ENDS WITH "ScrollableResultsAdapter"
363364
AND NOT type.name ENDS WITH "_$bundle"
364365
AND NOT type:SuppressJQAssistant
366+
AND NOT type:e
365367
RETURN
366368
type, method
367369
]]></cypher>

build/parents/build/pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -370,6 +370,11 @@
370370
<type>pom</type>
371371
<version>${project.version}</version>
372372
</dependency>
373+
<dependency>
374+
<groupId>org.hibernate.search</groupId>
375+
<artifactId>hibernate-search-metamodel-processor</artifactId>
376+
<version>${project.version}</version>
377+
</dependency>
373378

374379
<!-- Remaining Hibernate Search dependencies -->
375380
<dependency>

build/reports/pom.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,10 @@
7474
<groupId>org.hibernate.search</groupId>
7575
<artifactId>hibernate-search-mapper-orm-jakarta-batch-jberet</artifactId>
7676
</dependency>
77+
<dependency>
78+
<groupId>org.hibernate.search</groupId>
79+
<artifactId>hibernate-search-metamodel-processor</artifactId>
80+
</dependency>
7781
<dependency>
7882
<groupId>org.hibernate.search</groupId>
7983
<artifactId>hibernate-search-mapper-orm-batch-jsr352-core</artifactId>

distribution/pom.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,7 @@
256256
${basedir}/../mapper/orm-outbox-polling/src/main/java;
257257
${basedir}/../mapper/orm-jakarta-batch/core/src/main/java;
258258
${basedir}/../mapper/orm-jakarta-batch/jberet/src/main/java;
259+
${basedir}/../metamodel/processor/src/main/java;
259260
${basedir}/../engine/target/generated-sources/annotations;
260261
${basedir}/../util/common/target/generated-sources/annotations;
261262
${basedir}/../mapper/pojo-base/target/generated-sources/annotations;
@@ -268,6 +269,7 @@
268269
${basedir}/../mapper/orm-outbox-polling/target/generated-sources/annotations;
269270
${basedir}/../mapper/orm-jakarta-batch/core/target/generated-sources/annotations;
270271
${basedir}/../mapper/orm-jakarta-batch/jberet/target/generated-sources/annotations;
272+
${basedir}/../metamodel/processor/target/generated-sources/annotations;
271273
</sourcepath>
272274
<docfilessubdirs>true</docfilessubdirs>
273275
<packagesheader>Hibernate Search Packages</packagesheader>

documentation/pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,11 @@
6262
<artifactId>hibernate-search-backend-elasticsearch</artifactId>
6363
<scope>test</scope>
6464
</dependency>
65+
<dependency>
66+
<groupId>${project.groupId}</groupId>
67+
<artifactId>hibernate-search-metamodel-processor</artifactId>
68+
<scope>test</scope>
69+
</dependency>
6570
<dependency>
6671
<groupId>${project.groupId}</groupId>
6772
<artifactId>hibernate-search-util-internal-integrationtest-mapper-orm</artifactId>

documentation/src/test/java/org/hibernate/search/documentation/search/predicate/FieldReferenceIT.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -258,7 +258,7 @@ public static class EmbeddedThing3 {
258258
}
259259

260260

261-
// IMPL_NOTE: note cannot use the EntityClassName_ since ORM picks it up and tries to its thing...
261+
// IMPL_NOTE: note cannot use the EntityClassName_ since ORM picks it up and tries to do its thing...
262262
// so we'd need to come up with a different naming strategy...
263263
public static class ContainingA__
264264
implements HibernateOrmRootReferenceScope<ContainingA__, ContainingA>,

engine/src/main/java/org/hibernate/search/engine/backend/types/converter/spi/DslConverter.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import org.hibernate.search.engine.backend.types.converter.runtime.ToDocumentValueConvertContext;
99
import org.hibernate.search.engine.backend.types.converter.runtime.ToDocumentValueConvertContextExtension;
1010
import org.hibernate.search.engine.logging.impl.QueryLog;
11+
import org.hibernate.search.util.common.annotation.Incubating;
1112
import org.hibernate.search.util.common.impl.Contracts;
1213
import org.hibernate.search.util.common.reporting.spi.EventContextProvider;
1314

@@ -99,4 +100,12 @@ public <T> DslConverter<? super T, F> withInputType(Class<T> inputTypeCandidate,
99100
public boolean isCompatibleWith(DslConverter<?, ?> other) {
100101
return delegate.isCompatibleWith( other.delegate );
101102
}
103+
104+
/**
105+
* @return The document value converter that is backing up this converter.
106+
*/
107+
@Incubating
108+
public ToDocumentValueConverter<V, ? extends F> delegate() {
109+
return delegate;
110+
}
102111
}

engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/CountAggregationFieldStep.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88

99
import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory;
1010
import org.hibernate.search.engine.search.reference.aggregation.CountAggregationFieldReference;
11-
import org.hibernate.search.engine.search.reference.aggregation.MaxAggregationFieldReference;
1211
import org.hibernate.search.util.common.annotation.Incubating;
1312

1413
/**

engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/MaxAggregationFieldStep.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88

99
import org.hibernate.search.engine.search.common.ValueModel;
1010
import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory;
11-
import org.hibernate.search.engine.search.reference.aggregation.AvgAggregationFieldReference;
1211
import org.hibernate.search.engine.search.reference.aggregation.MaxAggregationFieldReference;
1312
import org.hibernate.search.util.common.annotation.Incubating;
1413

engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/MinAggregationFieldStep.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88

99
import org.hibernate.search.engine.search.common.ValueModel;
1010
import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory;
11-
import org.hibernate.search.engine.search.reference.aggregation.MaxAggregationFieldReference;
1211
import org.hibernate.search.engine.search.reference.aggregation.MinAggregationFieldReference;
1312
import org.hibernate.search.util.common.annotation.Incubating;
1413

engine/src/main/java/org/hibernate/search/engine/search/aggregation/dsl/SumAggregationFieldStep.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88

99
import org.hibernate.search.engine.search.common.ValueModel;
1010
import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory;
11-
import org.hibernate.search.engine.search.reference.aggregation.MaxAggregationFieldReference;
1211
import org.hibernate.search.engine.search.reference.aggregation.SumAggregationFieldReference;
1312
import org.hibernate.search.util.common.annotation.Incubating;
1413

engine/src/main/java/org/hibernate/search/engine/search/projection/dsl/SearchProjectionFactory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@ default <T> FieldProjectionValueStep<?, T> field(FieldProjectionFieldReference<?
236236
*/
237237
@Incubating
238238
default DistanceToFieldProjectionValueStep<?, Double> distance(
239-
DistanceProjectionFieldReference<? super SR, ?> fieldReference,
239+
DistanceProjectionFieldReference<? super SR> fieldReference,
240240
GeoPoint center) {
241241
return distance( fieldReference.absolutePath(), center );
242242
}

engine/src/main/java/org/hibernate/search/engine/search/reference/predicate/PredicateFieldReference.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,6 @@
66

77
import org.hibernate.search.engine.search.reference.FieldReference;
88

9+
910
public interface PredicateFieldReference<SR> extends FieldReference<SR> {
1011
}

engine/src/main/java/org/hibernate/search/engine/search/reference/projection/DistanceProjectionFieldReference.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,5 @@
44
*/
55
package org.hibernate.search.engine.search.reference.projection;
66

7-
public interface DistanceProjectionFieldReference<SR, T> extends TypedProjectionFieldReference<SR, T> {
7+
public interface DistanceProjectionFieldReference<SR> extends ProjectionFieldReference<SR> {
88
}

engine/src/main/java/org/hibernate/search/engine/search/reference/sort/DistanceSortFieldReference.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,5 @@
44
*/
55
package org.hibernate.search.engine.search.reference.sort;
66

7-
public interface DistanceSortFieldReference<SR, T> extends TypedSortFieldReference<SR, T> {
7+
public interface DistanceSortFieldReference<SR> extends SortFieldReference<SR> {
88
}

engine/src/main/java/org/hibernate/search/engine/search/reference/spi/TraitReferenceMapping.java

Lines changed: 0 additions & 106 deletions
This file was deleted.

engine/src/main/java/org/hibernate/search/engine/search/sort/dsl/ExtendedSearchSortFactory.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88

99
import org.hibernate.search.engine.search.predicate.dsl.SearchPredicateFactory;
1010
import org.hibernate.search.engine.search.reference.sort.DistanceSortFieldReference;
11-
import org.hibernate.search.engine.search.reference.sort.FieldSortFieldReference;
1211
import org.hibernate.search.engine.spatial.GeoPoint;
1312

1413
/**
@@ -43,13 +42,13 @@ public interface ExtendedSearchSortFactory<
4342
}
4443

4544
@Override
46-
default DistanceSortOptionsStep<SR, ?, PDF> distance(DistanceSortFieldReference<? super SR, ?> fieldReference,
45+
default DistanceSortOptionsStep<SR, ?, PDF> distance(DistanceSortFieldReference<? super SR> fieldReference,
4746
GeoPoint location) {
4847
return distance( fieldReference.absolutePath(), location );
4948
}
5049

5150
@Override
52-
default DistanceSortOptionsStep<SR, ?, PDF> distance(DistanceSortFieldReference<? super SR, ?> fieldReference, double latitude,
51+
default DistanceSortOptionsStep<SR, ?, PDF> distance(DistanceSortFieldReference<? super SR> fieldReference, double latitude,
5352
double longitude) {
5453
return distance( fieldReference, GeoPoint.of( latitude, longitude ) );
5554
}

engine/src/main/java/org/hibernate/search/engine/search/sort/dsl/SearchSortFactory.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ public interface SearchSortFactory<SR> {
103103
*/
104104
@Incubating
105105
default DistanceSortOptionsStep<SR, ?, ? extends SearchPredicateFactory<SR>> distance(
106-
DistanceSortFieldReference<? super SR, ?> fieldReference, GeoPoint location) {
106+
DistanceSortFieldReference<? super SR> fieldReference, GeoPoint location) {
107107
return distance( fieldReference.absolutePath(), location );
108108
}
109109

@@ -138,7 +138,7 @@ public interface SearchSortFactory<SR> {
138138
*/
139139
@Incubating
140140
default DistanceSortOptionsStep<SR, ?, ? extends SearchPredicateFactory<SR>> distance(
141-
DistanceSortFieldReference<? super SR, ?> fieldReference, double latitude,
141+
DistanceSortFieldReference<? super SR> fieldReference, double latitude,
142142
double longitude) {
143143
return distance( fieldReference, GeoPoint.of( latitude, longitude ) );
144144
}

mapper/pojo-base/src/main/java/org/hibernate/search/mapper/pojo/bridge/runtime/impl/PojoValueBridgeDocumentValueConverter.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,10 @@ public boolean isCompatibleWith(FromDocumentValueConverter<?, ?> other) {
6464
return bridge.isCompatibleWith( castedOther.bridge );
6565
}
6666

67+
public ValueBridge<V, F> bridge() {
68+
return bridge;
69+
}
70+
6771
private static final class ContextExtension
6872
implements ToDocumentValueConvertContextExtension<ValueBridgeToIndexedValueContext>,
6973
FromDocumentValueConvertContextExtension<ValueBridgeFromIndexedValueContext> {

0 commit comments

Comments
 (0)