Skip to content

Commit 5557b9a

Browse files
committed
HSEARCH-5300 Adjust the processor configuration properties
1 parent 1239698 commit 5557b9a

File tree

3 files changed

+39
-7
lines changed

3 files changed

+39
-7
lines changed

metamodel/metamodel-processor/src/main/java/org/hibernate/search/metamodel/processor/HibernateSearchMetamodelProcessor.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@
2828
@SupportedAnnotationTypes("*")
2929
// Currently this is more of a placeholder for future config options:
3030
@SupportedOptions({
31-
HibernateSearchMetamodelProcessorSettings.ADD_GENERATED_ANNOTATION,
31+
HibernateSearchMetamodelProcessorSettings.GENERATED_ANNOTATION_ADD,
32+
HibernateSearchMetamodelProcessorSettings.GENERATED_ANNOTATION_TIMESTAMP,
3233
HibernateSearchMetamodelProcessorSettings.BACKEND_VERSION })
3334
@org.hibernate.search.util.common.annotation.impl.SuppressJQAssistant(
3435
reason = "JQAssistant has issue with detecting that getSupportedSourceVersion is an overridden method.")

metamodel/metamodel-processor/src/main/java/org/hibernate/search/metamodel/processor/HibernateSearchMetamodelProcessorSettings.java

Lines changed: 35 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,11 @@
66

77

88
import java.io.Serializable;
9+
import java.time.Clock;
10+
import java.time.LocalDateTime;
11+
import java.time.ZoneOffset;
12+
import java.time.format.DateTimeFormatter;
13+
import java.util.Locale;
914
import java.util.Map;
1015
import java.util.Objects;
1116

@@ -18,15 +23,17 @@ private HibernateSearchMetamodelProcessorSettings() {
1823

1924
private static final String PREFIX = "org.hibernate.search.metamodel.processor.";
2025

21-
public static final String ADD_GENERATED_ANNOTATION = PREFIX + Radicals.ADD_GENERATED_ANNOTATION;
26+
public static final String GENERATED_ANNOTATION_ADD = PREFIX + Radicals.GENERATED_ANNOTATION_ADD;
27+
public static final String GENERATED_ANNOTATION_TIMESTAMP = PREFIX + Radicals.GENERATED_ANNOTATION_TIMESTAMP;
2228
public static final String BACKEND_VERSION = PREFIX + Radicals.BACKEND_VERSION;
2329

2430
public static class Radicals {
2531

2632
private Radicals() {
2733
}
2834

29-
public static final String ADD_GENERATED_ANNOTATION = "add_generated_annotation";
35+
public static final String GENERATED_ANNOTATION_ADD = "generated_annotation.add";
36+
public static final String GENERATED_ANNOTATION_TIMESTAMP = "generated_annotation.timestamp";
3037
public static final String BACKEND_VERSION = "backend.version";
3138
}
3239

@@ -35,20 +42,43 @@ private Radicals() {
3542
*/
3643
public static final class Defaults {
3744

38-
public static final String ADD_GENERATED_ANNOTATION = Boolean.TRUE.toString();
45+
public static final String GENERATED_ANNOTATION_ADD = Boolean.TRUE.toString();
46+
public static final String GENERATED_ANNOTATION_TIMESTAMP = Boolean.FALSE.toString();
3947

4048
private Defaults() {
4149
}
4250
}
4351

44-
public record Configuration(boolean addGeneratedAnnotation, String version) implements Serializable {
52+
public record Configuration(boolean generatedAnnotationAdd, boolean generatedAnnotationTimestamp, String version)
53+
implements Serializable {
4554
public Configuration(Map<String, String> options) {
4655
this(
47-
Boolean.parseBoolean( options.getOrDefault( ADD_GENERATED_ANNOTATION, Defaults.ADD_GENERATED_ANNOTATION ) ),
56+
Boolean.parseBoolean( options.getOrDefault( GENERATED_ANNOTATION_ADD, Defaults.GENERATED_ANNOTATION_ADD ) ),
57+
Boolean.parseBoolean(
58+
options.getOrDefault( GENERATED_ANNOTATION_TIMESTAMP, Defaults.GENERATED_ANNOTATION_TIMESTAMP ) ),
4859
Objects.toString( options.get( BACKEND_VERSION ), null )
4960
);
5061
}
5162

63+
public String formattedGeneratedAnnotation() {
64+
if ( !generatedAnnotationAdd ) {
65+
return "";
66+
}
67+
if ( generatedAnnotationTimestamp ) {
68+
return String.format(
69+
Locale.ROOT, "@javax.annotation.processing.Generated(value = \"%s\", date = \"%s\")",
70+
HibernateSearchMetamodelProcessor.class.getName(),
71+
LocalDateTime.now( Clock.systemUTC() ).atOffset( ZoneOffset.UTC )
72+
.format( DateTimeFormatter.ISO_OFFSET_DATE_TIME )
73+
);
74+
}
75+
else {
76+
return String.format( Locale.ROOT, "@javax.annotation.processing.Generated(value = \"%s\")",
77+
HibernateSearchMetamodelProcessor.class.getName()
78+
);
79+
}
80+
}
81+
5282
public String elasticsearchVersion() {
5383
return version == null ? "9.0.0" : version;
5484
}

metamodel/metamodel-processor/src/main/java/org/hibernate/search/metamodel/processor/writer/impl/MetamodelClassWriter.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ public String formatted() {
147147
Locale.ROOT,
148148
"""
149149
%s
150-
@javax.annotation.processing.Generated(value = "org.hibernate.search.metamodel.processor.HibernateSearchMetamodelProcessor")
150+
%s
151151
public final class %s implements
152152
%s<%s, %s> {
153153
@@ -174,6 +174,7 @@ public final class %s implements
174174
}
175175
""",
176176
packageName.isEmpty() ? "" : "package " + packageName + ";\n",
177+
configuration.formattedGeneratedAnnotation(),
177178
metamodelClassName,
178179
scopeInterfaceType(),
179180
metamodelClassName,

0 commit comments

Comments
 (0)