diff --git a/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/AbstractAnnotatedMethod.java b/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/AbstractAnnotatedMethod.java index fe3f49abb3d2..c46b7f2ebc61 100644 --- a/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/AbstractAnnotatedMethod.java +++ b/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/AbstractAnnotatedMethod.java @@ -13,9 +13,6 @@ import static java.util.Collections.emptyList; import static java.util.stream.Collectors.toList; -import static org.hibernate.processor.annotation.AnnotationMetaEntity.usingReactiveSession; -import static org.hibernate.processor.annotation.AnnotationMetaEntity.usingReactiveSessionAccess; -import static org.hibernate.processor.annotation.AnnotationMetaEntity.usingStatelessSession; import static org.hibernate.processor.util.Constants.ENTITY_MANAGER; import static org.hibernate.processor.util.Constants.OBJECTS; import static org.hibernate.processor.util.TypeUtils.hasAnnotation; @@ -50,15 +47,15 @@ boolean isUsingEntityManager() { } boolean isUsingStatelessSession() { - return usingStatelessSession(sessionType); + return annotationMetaEntity.isStatelessSession(); } boolean isReactive() { - return usingReactiveSession(sessionType); + return annotationMetaEntity.isReactive(); } boolean isReactiveSessionAccess() { - return usingReactiveSessionAccess(sessionType); + return annotationMetaEntity.isReactiveSessionAccess(); } String localSessionName() { diff --git a/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/AbstractQueryMethod.java b/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/AbstractQueryMethod.java index b349470ca6e7..cb30fdfa52b6 100644 --- a/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/AbstractQueryMethod.java +++ b/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/AbstractQueryMethod.java @@ -10,10 +10,10 @@ import javax.lang.model.element.ExecutableElement; import java.util.List; import java.util.Set; -import java.util.stream.Collectors; import static java.util.stream.Collectors.toList; import static org.hibernate.processor.util.Constants.BOXED_VOID; +import static org.hibernate.processor.util.Constants.COLLECTORS; import static org.hibernate.processor.util.Constants.HIB_KEYED_PAGE; import static org.hibernate.processor.util.Constants.HIB_KEYED_RESULT_LIST; import static org.hibernate.processor.util.Constants.HIB_ORDER; @@ -28,6 +28,7 @@ import static org.hibernate.processor.util.Constants.JD_PAGE_REQUEST; import static org.hibernate.processor.util.Constants.JD_SORT; import static org.hibernate.processor.util.Constants.LIST; +import static org.hibernate.processor.util.Constants.NONNULL; import static org.hibernate.processor.util.Constants.OPTIONAL; import static org.hibernate.processor.util.Constants.QUERY; import static org.hibernate.processor.util.Constants.SESSION_TYPES; @@ -177,7 +178,7 @@ void notNull(StringBuilder declaration) { if ( addNonnullAnnotation ) { declaration .append('@') - .append(annotationMetaEntity.importType("jakarta.annotation.Nonnull")) + .append(annotationMetaEntity.importType(NONNULL)) .append(' '); } } @@ -363,7 +364,7 @@ void makeKeyedPage(StringBuilder declaration, List paramTypes) { annotationMetaEntity.staticImport(HIB_ORDER, "by"); annotationMetaEntity.staticImport(HIB_PAGE, "page"); annotationMetaEntity.staticImport("org.hibernate.query.KeyedPage.KeyInterpretation", "*"); - annotationMetaEntity.staticImport(Collectors.class.getName(), "toList"); + annotationMetaEntity.staticImport(COLLECTORS, "toList"); if ( returnTypeName == null ) { throw new AssertionFailure("entity class cannot be null"); } diff --git a/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/AnnotationMetaAttribute.java b/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/AnnotationMetaAttribute.java index 6da1b3764abd..e11d4a19756a 100644 --- a/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/AnnotationMetaAttribute.java +++ b/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/AnnotationMetaAttribute.java @@ -9,6 +9,7 @@ import javax.lang.model.element.Element; +import static org.hibernate.processor.util.Constants.STRING; import static org.hibernate.processor.util.StringUtil.getUpperUnderscoreCaseFromLowerCamelCase; import static org.hibernate.processor.util.TypeUtils.propertyName; @@ -70,7 +71,7 @@ public String getAttributeNameDeclarationString(){ .append(getPropertyName()) .append( "\n **/\n" ) .append("public static final ") - .append(parent.importType(String.class.getName())) + .append(parent.importType(STRING)) .append(' ') .append(getUpperUnderscoreCaseFromLowerCamelCase(getPropertyName())) .append(" = ") diff --git a/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/AnnotationMetaCollection.java b/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/AnnotationMetaCollection.java index ccdb5a9234df..c9e2c8814576 100644 --- a/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/AnnotationMetaCollection.java +++ b/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/AnnotationMetaCollection.java @@ -14,7 +14,7 @@ * @author Emmanuel Bernard */ public class AnnotationMetaCollection extends AnnotationMetaAttribute implements MetaCollection { - private String collectionType; + private final String collectionType; public AnnotationMetaCollection(AnnotationMetaEntity parent, Element element, String collectionType, String elementType) { super( parent, element, elementType ); diff --git a/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/AnnotationMetaEntity.java b/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/AnnotationMetaEntity.java index 83dbefd2a5d6..037e4332e813 100644 --- a/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/AnnotationMetaEntity.java +++ b/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/AnnotationMetaEntity.java @@ -53,6 +53,7 @@ import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Set; @@ -172,7 +173,7 @@ public AnnotationMetaEntity( this.element = element; this.context = context; this.managed = managed; - this.members = new HashMap<>(); + this.members = new LinkedHashMap<>(); this.quarkusInjection = context.isQuarkusInjection(); this.importContext = parent != null ? parent : new ImportContextImpl( getPackageName( context, element ) ); jakartaDataStaticModel = jakartaDataStaticMetamodel; @@ -517,7 +518,7 @@ else if ( declaredType == parameterType } private void validateStatelessSessionType() { - if ( !usingStatelessSession(sessionType) ) { + if ( !isStatelessSession() ) { message( element, "repository must be backed by a 'StatelessSession'", Diagnostic.Kind.ERROR ); @@ -645,7 +646,7 @@ else if ( element.getKind() == ElementKind.INTERFACE private boolean needsEventBus() { return jakartaDataRepository - && !usingReactiveSession( sessionType ) // non-reactive + && !isReactive() // non-reactive && context.isDataEventPackageAvailable() // events && context.addInjectAnnotation() // @nject && context.addDependentAnnotation(); // CDI @@ -700,11 +701,18 @@ boolean needsDefaultConstructor() { return null; } - @Override + public boolean isStatelessSession() { + return usingStatelessSession(sessionType); + } + public boolean isReactive() { return usingReactiveSession(sessionType); } + public boolean isReactiveSessionAccess() { + return usingReactiveSessionAccess(sessionType); + } + private boolean isPanacheType(TypeElement type) { return context.usesQuarkusOrm() && isOrmPanacheType( type ) || context.usesQuarkusReactive() && isReactivePanacheType( type ); @@ -1195,7 +1203,7 @@ else if ( kind == TypeKind.DECLARED ) { private TypeMirror unUniIfPossible(ExecutableElement method, TypeMirror returnType) { final TypeMirror result = ununi( returnType ); if ( repository ) { - if ( usingReactiveSession( sessionType ) ) { + if ( isReactive() ) { if ( result == returnType ) { message( method, "backed by a reactive session, must return 'Uni'", Diagnostic.Kind.ERROR ); } @@ -1464,7 +1472,7 @@ private static boolean isVoid(TypeMirror returnType) { case DECLARED: final DeclaredType declaredType = (DeclaredType) returnType; final TypeElement typeElement = (TypeElement) declaredType.asElement(); - return typeElement.getQualifiedName().contentEquals(Void.class.getName()); + return typeElement.getQualifiedName().contentEquals(VOID); default: return false; } @@ -2016,7 +2024,7 @@ private void createSingleParameterFinder( } } - private FieldType pickStrategy(FieldType fieldType, String sessionType, List profiles) { + private static FieldType pickStrategy(FieldType fieldType, String sessionType, List profiles) { if ( ( usingStatelessSession(sessionType) || usingReactiveSession(sessionType) ) && !profiles.isEmpty() ) { // no support for passing fetch profiles i.e. IdentifierLoadAccess @@ -2063,7 +2071,7 @@ enum FieldType { } else if ( containsAnnotation( param, PATTERN ) ) { final AnnotationMirror mirror = getAnnotationMirror(param, PATTERN); - if ( mirror!=null && !typeNameEquals(param.asType(), String.class.getName()) ) { + if ( mirror!=null && !typeNameEquals(param.asType(), STRING) ) { message( param, mirror, "parameter annotated '@Pattern' is not of type 'String'", Diagnostic.Kind.ERROR ); @@ -2537,7 +2545,7 @@ private void validateUpdateHql( @Nullable TypeMirror returnType, AnnotationMirror mirror, AnnotationValue value) { - boolean reactive = usingReactiveSession( sessionType ); + final boolean reactive = isReactive(); if ( !isValidUpdateReturnType( returnType, method, reactive ) ) { message( method, mirror, value, "return type of mutation query method must be " @@ -3095,20 +3103,20 @@ private static boolean hasParameter(String hql, int i, String param) { .matcher(hql).matches(); } - static boolean usingReactiveSession(String sessionType) { + private static boolean usingReactiveSession(String sessionType) { return MUTINY_SESSION.equals(sessionType) || MUTINY_STATELESS_SESSION.equals(sessionType) || UNI_MUTINY_SESSION.equals(sessionType) || UNI_MUTINY_STATELESS_SESSION.equals(sessionType); } - static boolean usingStatelessSession(String sessionType) { + private static boolean usingStatelessSession(String sessionType) { return HIB_STATELESS_SESSION.equals(sessionType) || MUTINY_STATELESS_SESSION.equals(sessionType) || UNI_MUTINY_STATELESS_SESSION.equals(sessionType); } - static boolean usingReactiveSessionAccess(String sessionType) { + private static boolean usingReactiveSessionAccess(String sessionType) { return UNI_MUTINY_SESSION.equals(sessionType) || UNI_MUTINY_STATELESS_SESSION.equals(sessionType); } diff --git a/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/AnnotationMetaType.java b/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/AnnotationMetaType.java index 59953849f4ef..7985d7fb6d13 100644 --- a/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/AnnotationMetaType.java +++ b/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/AnnotationMetaType.java @@ -7,7 +7,6 @@ import org.hibernate.processor.model.MetaAttribute; import org.hibernate.processor.model.Metamodel; import org.hibernate.processor.util.Constants; -import org.hibernate.metamodel.model.domain.ManagedDomainType; import static org.hibernate.processor.util.TypeUtils.hasAnnotation; @@ -53,7 +52,7 @@ public String getAttributeNameDeclarationString() { @Override public String getMetaType() { - return ManagedDomainType.class.getName(); + return "org.hibernate.metamodel.model.domain.ManagedDomainType"; } @Override diff --git a/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/DataAnnotationMetaAttribute.java b/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/DataAnnotationMetaAttribute.java index 734fe19bd062..898799cbff4c 100644 --- a/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/DataAnnotationMetaAttribute.java +++ b/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/DataAnnotationMetaAttribute.java @@ -10,6 +10,7 @@ import javax.lang.model.element.Element; +import static org.hibernate.processor.util.Constants.STRING; import static org.hibernate.processor.util.StringUtil.getUpperUnderscoreCaseFromLowerCamelCase; import static org.hibernate.processor.util.TypeUtils.propertyName; @@ -44,7 +45,7 @@ public boolean hasStringAttribute() { } private boolean isTextual() { - return String.class.getName().equals(type); + return STRING.equals(type); } @Override @@ -81,7 +82,7 @@ public String getAttributeNameDeclarationString(){ .append("#") .append( getPropertyName().replace('.','_') ) .append( "\n **/\n" ) - .append(parent.importType(String.class.getName())) + .append(parent.importType(STRING)) .append(" ") .append(fieldName()) .append(" = ") diff --git a/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/DefaultConstructor.java b/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/DefaultConstructor.java index b7b87abfccee..5400fe18adab 100644 --- a/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/DefaultConstructor.java +++ b/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/DefaultConstructor.java @@ -9,12 +9,15 @@ import org.hibernate.processor.model.Metamodel; import org.hibernate.processor.util.Constants; -import static org.hibernate.processor.annotation.AnnotationMetaEntity.usingReactiveSession; import static org.hibernate.processor.util.Constants.ENTITY_MANAGER_FACTORY; import static org.hibernate.processor.util.Constants.HIB_SESSION_FACTORY; +import static org.hibernate.processor.util.Constants.INJECT; import static org.hibernate.processor.util.Constants.MUTINY_SESSION; import static org.hibernate.processor.util.Constants.MUTINY_SESSION_FACTORY; import static org.hibernate.processor.util.Constants.MUTINY_STATELESS_SESSION; +import static org.hibernate.processor.util.Constants.PERSISTENCE_UNIT; +import static org.hibernate.processor.util.Constants.POST_CONSTRUCT; +import static org.hibernate.processor.util.Constants.PRE_DESTROY; /** * Used by the container to instantiate a Jakarta Data repository. @@ -22,7 +25,7 @@ * @author Gavin King */ public class DefaultConstructor implements MetaAttribute { - private final Metamodel annotationMetaEntity; + private final AnnotationMetaEntity annotationMetaEntity; private final String constructorName; private final String methodName; private final String sessionTypeName; @@ -31,7 +34,7 @@ public class DefaultConstructor implements MetaAttribute { private final boolean addInjectAnnotation; public DefaultConstructor( - Metamodel annotationMetaEntity, + AnnotationMetaEntity annotationMetaEntity, String constructorName, String methodName, String sessionTypeName, @@ -48,7 +51,7 @@ public DefaultConstructor( } private boolean isReactive() { - return usingReactiveSession(sessionTypeName); + return annotationMetaEntity.isReactive(); } @Override @@ -69,7 +72,7 @@ public String getAttributeDeclarationString() { if ( annotationMetaEntity.getSuperTypeElement() == null ) { declaration .append("@") - .append(annotationMetaEntity.importType("jakarta.persistence.PersistenceUnit")); + .append(annotationMetaEntity.importType(PERSISTENCE_UNIT)); if ( dataStore != null ) { declaration .append("(unitName=\"") @@ -82,15 +85,16 @@ public String getAttributeDeclarationString() { .append(" ") .append(sessionVariableName) .append("Factory;\n\n"); + final String sessionFactoryType = isReactive() ? MUTINY_SESSION_FACTORY : HIB_SESSION_FACTORY; declaration.append('@') - .append(annotationMetaEntity.importType("jakarta.annotation.PostConstruct")) + .append(annotationMetaEntity.importType(POST_CONSTRUCT)) .append("\nprivate void openSession() {") .append("\n\t") .append(sessionVariableName) .append(" = ") .append(sessionVariableName) .append("Factory.unwrap(") - .append(annotationMetaEntity.importType(isReactive() ? MUTINY_SESSION_FACTORY : HIB_SESSION_FACTORY)) + .append(annotationMetaEntity.importType( sessionFactoryType )) .append(".class).openStatelessSession()"); if ( MUTINY_SESSION.equals(sessionTypeName) || MUTINY_STATELESS_SESSION.equals(sessionTypeName) ) { @@ -103,7 +107,7 @@ public String getAttributeDeclarationString() { // TODO: is it a problem that we never close the session? if ( !isReactive() ) { declaration.append('@') - .append(annotationMetaEntity.importType("jakarta.annotation.PreDestroy")) + .append(annotationMetaEntity.importType(PRE_DESTROY)) .append("\nprivate void closeSession() {") .append("\n\t") .append(sessionVariableName) @@ -124,7 +128,7 @@ private void inject(StringBuilder declaration) { if ( addInjectAnnotation ) { declaration .append('@') - .append(annotationMetaEntity.importType("jakarta.inject.Inject")) + .append(annotationMetaEntity.importType(INJECT)) .append('\n'); } } diff --git a/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/EventField.java b/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/EventField.java index 8c330d8b265a..68d597eab04b 100644 --- a/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/EventField.java +++ b/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/EventField.java @@ -8,9 +8,12 @@ import org.hibernate.processor.model.Metamodel; import org.hibernate.processor.util.Constants; +import static org.hibernate.processor.util.Constants.INJECT; +import static org.hibernate.processor.util.Constants.JD_LIFECYCLE_EVENT; + /** - * Used by the container to instantiate a Jakarta Data repository. + * Holds a reference to the CDI {@code Event} object. * * @author Gavin King */ @@ -34,8 +37,8 @@ public boolean hasStringAttribute() { @Override public String getAttributeDeclarationString() { - annotationMetaEntity.importType("jakarta.inject.Inject"); - annotationMetaEntity.importType("jakarta.data.event.LifecycleEvent"); + annotationMetaEntity.importType(INJECT); + annotationMetaEntity.importType(JD_LIFECYCLE_EVENT); return "\n@Inject\nprivate Event> event;"; } diff --git a/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/LifecycleMethod.java b/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/LifecycleMethod.java index 454dcaad32a8..05cc7b8356e6 100644 --- a/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/LifecycleMethod.java +++ b/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/LifecycleMethod.java @@ -10,7 +10,12 @@ import java.util.Set; import static java.lang.Character.toUpperCase; +import static org.hibernate.processor.util.Constants.EVENT; +import static org.hibernate.processor.util.Constants.INJECT; +import static org.hibernate.processor.util.Constants.JD_LIFECYCLE_EVENT; import static org.hibernate.processor.util.Constants.LIST; +import static org.hibernate.processor.util.Constants.NONNULL; +import static org.hibernate.processor.util.Constants.TYPE_LITERAL; import static org.hibernate.processor.util.Constants.UNI; public class LifecycleMethod extends AbstractAnnotatedMethod { @@ -109,10 +114,10 @@ private void fireEvents(StringBuilder declaration, String prefix) { } private void fireEvent(StringBuilder declaration, String entityName, String eventType) { - annotationMetaEntity.importType( "jakarta.data.event.LifecycleEvent" ); - annotationMetaEntity.importType( "jakarta.enterprise.util.TypeLiteral" ); - annotationMetaEntity.importType( "jakarta.enterprise.event.Event" ); - annotationMetaEntity.importType( "jakarta.inject.Inject" ); + annotationMetaEntity.importType( JD_LIFECYCLE_EVENT ); + annotationMetaEntity.importType( TYPE_LITERAL ); + annotationMetaEntity.importType( EVENT ); + annotationMetaEntity.importType( INJECT ); annotationMetaEntity.importType( "jakarta.data.event." + eventType ); if (parameterKind != ParameterKind.NORMAL) { declaration.append( "\t" ); @@ -354,7 +359,7 @@ private void notNull(StringBuilder declaration) { if ( addNonnullAnnotation ) { declaration .append('@') - .append(annotationMetaEntity.importType("jakarta.annotation.Nonnull")) + .append(annotationMetaEntity.importType(NONNULL)) .append(' '); } } diff --git a/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/NameMetaAttribute.java b/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/NameMetaAttribute.java index 403551dc66a8..078b0ca53295 100644 --- a/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/NameMetaAttribute.java +++ b/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/NameMetaAttribute.java @@ -7,6 +7,7 @@ import org.hibernate.processor.model.MetaAttribute; import org.hibernate.processor.model.Metamodel; +import static org.hibernate.processor.util.Constants.STRING; import static org.hibernate.processor.util.StringUtil.nameToFieldName; /** @@ -45,7 +46,7 @@ public String getAttributeNameDeclarationString() { declaration.append( "public static final " ); } return declaration - .append(annotationMetaEntity.importType(String.class.getName())) + .append(annotationMetaEntity.importType(STRING)) .append(' ') .append(prefix) .append(fieldName()) diff --git a/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/NamedQueryMethod.java b/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/NamedQueryMethod.java index b2f851fe1594..2bdb3ac66097 100644 --- a/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/NamedQueryMethod.java +++ b/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/NamedQueryMethod.java @@ -14,6 +14,7 @@ import java.util.TreeSet; +import static org.hibernate.processor.util.Constants.NONNULL; import static org.hibernate.processor.util.StringUtil.nameToFieldName; /** @@ -97,7 +98,7 @@ void notNull(StringBuilder declaration) { if ( addNonnullAnnotation ) { declaration .append('@') - .append(annotationMeta.importType("jakarta.annotation.Nonnull")) + .append(annotationMeta.importType(NONNULL)) .append(' '); } } diff --git a/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/NaturalIdFinderMethod.java b/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/NaturalIdFinderMethod.java index 8c011778d137..c4664ff41b6d 100644 --- a/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/NaturalIdFinderMethod.java +++ b/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/NaturalIdFinderMethod.java @@ -16,6 +16,8 @@ */ public class NaturalIdFinderMethod extends AbstractFinderMethod { + public static final String IDENTIFIER = "org.hibernate.reactive.common.Identifier"; + private final List paramNullability; public NaturalIdFinderMethod( @@ -111,7 +113,7 @@ private void findReactively(StringBuilder declaration) { if (composite) { declaration .append("\n\t\t\t") - .append(annotationMetaEntity.importType("org.hibernate.reactive.common.Identifier")) + .append(annotationMetaEntity.importType(IDENTIFIER)) .append(".composite("); } boolean first = true; @@ -130,7 +132,7 @@ private void findReactively(StringBuilder declaration) { } final String paramName = paramNames.get(i); declaration - .append(annotationMetaEntity.importType("org.hibernate.reactive.common.Identifier")) + .append(annotationMetaEntity.importType(IDENTIFIER)) .append(".id(") .append(annotationMetaEntity.importType(entity + '_')) .append('.') diff --git a/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/QueryMethod.java b/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/QueryMethod.java index a624225fcce6..972ea13b7e0a 100644 --- a/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/QueryMethod.java +++ b/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/QueryMethod.java @@ -10,7 +10,9 @@ import javax.lang.model.element.ExecutableElement; import java.util.List; +import static org.hibernate.processor.util.Constants.BOOLEAN; import static org.hibernate.processor.util.Constants.QUERY; +import static org.hibernate.processor.util.Constants.VOID; import static org.hibernate.processor.util.StringUtil.getUpperUnderscoreCaseFromLowerCamelCase; /** @@ -152,11 +154,11 @@ private void execute(StringBuilder declaration, boolean unwrapped) { declaration .append("\t\t\t.executeUpdate()"); if ( isReactive() ) { - if ( Void.class.getName().equals( returnTypeName ) ) { + if ( VOID.equals(returnTypeName) ) { declaration .append( "\n\t\t\t.replaceWithVoid()" ); } - else if ( Boolean.class.getName().equals( returnTypeName ) ) { + else if ( BOOLEAN.equals(returnTypeName) ) { declaration .append( "\n\t\t\t.map(rows -> rows>0)" ); } diff --git a/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/RepositoryConstructor.java b/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/RepositoryConstructor.java index cecddea53119..f095714a4ada 100644 --- a/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/RepositoryConstructor.java +++ b/tooling/metamodel-generator/src/main/java/org/hibernate/processor/annotation/RepositoryConstructor.java @@ -9,6 +9,9 @@ import org.hibernate.processor.model.Metamodel; import org.hibernate.processor.util.Constants; +import static org.hibernate.processor.util.Constants.INJECT; +import static org.hibernate.processor.util.Constants.NONNULL; + /** * A general purpose constructor which accepts the session. * @@ -168,7 +171,7 @@ private void inject(StringBuilder declaration) { if ( addInjectAnnotation && !annotationMetaEntity.needsDefaultConstructor() ) { declaration .append('@') - .append(annotationMetaEntity.importType("jakarta.inject.Inject")) + .append(annotationMetaEntity.importType(INJECT)) .append('\n'); } } @@ -177,7 +180,7 @@ private void notNull(StringBuilder declaration) { if ( addNonnullAnnotation ) { declaration .append('@') - .append(annotationMetaEntity.importType("jakarta.annotation.Nonnull")) + .append(annotationMetaEntity.importType(NONNULL)) .append(' '); } } diff --git a/tooling/metamodel-generator/src/main/java/org/hibernate/processor/model/Metamodel.java b/tooling/metamodel-generator/src/main/java/org/hibernate/processor/model/Metamodel.java index 4408e4def0fd..49cdfb09e607 100644 --- a/tooling/metamodel-generator/src/main/java/org/hibernate/processor/model/Metamodel.java +++ b/tooling/metamodel-generator/src/main/java/org/hibernate/processor/model/Metamodel.java @@ -60,8 +60,4 @@ public interface Metamodel extends ImportContext { List inheritedAnnotations(); String javadoc(); - - default boolean isReactive() { - return false; - } } diff --git a/tooling/metamodel-generator/src/main/java/org/hibernate/processor/util/Constants.java b/tooling/metamodel-generator/src/main/java/org/hibernate/processor/util/Constants.java index 922e20cd953e..435eed729cd0 100644 --- a/tooling/metamodel-generator/src/main/java/org/hibernate/processor/util/Constants.java +++ b/tooling/metamodel-generator/src/main/java/org/hibernate/processor/util/Constants.java @@ -84,6 +84,8 @@ public final class Constants { public static final String JD_ORDER_BY = "jakarta.data.repository.OrderBy"; public static final String JD_ORDER_BY_LIST = "jakarta.data.repository.OrderBy.List"; + public static final String JD_LIFECYCLE_EVENT = "jakarta.data.event.LifecycleEvent"; + public static final String HIB_ORDER = "org.hibernate.query.Order"; public static final String HIB_PAGE = "org.hibernate.query.Page"; public static final String HIB_KEYED_PAGE = "org.hibernate.query.KeyedPage"; @@ -108,6 +110,10 @@ public final class Constants { public static final String TUPLE = "jakarta.persistence.Tuple"; + public static final String INJECT = "jakarta.inject.Inject"; + public static final String TYPE_LITERAL = "jakarta.enterprise.util.TypeLiteral"; + public static final String EVENT = "jakarta.enterprise.event.Event"; + public static final String UNI = "io.smallrye.mutiny.Uni"; public static final String UNI_MUTINY_SESSION = UNI + "<" + MUTINY_SESSION + ">"; public static final String UNI_MUTINY_STATELESS_SESSION = UNI + "<" + MUTINY_STATELESS_SESSION + ">"; @@ -122,7 +128,14 @@ public final class Constants { public static final String LIST_ATTRIBUTE = "jakarta.persistence.metamodel.ListAttribute"; public static final String MAP_ATTRIBUTE = "jakarta.persistence.metamodel.MapAttribute"; + public static final String PERSISTENCE_UNIT = "jakarta.persistence.PersistenceUnit"; + public static final String POST_CONSTRUCT = "jakarta.annotation.PostConstruct"; + public static final String PRE_DESTROY = "jakarta.annotation.PreDestroy"; + public static final String JAVA_OBJECT = "java.lang.Object"; + public static final String VOID = "java.lang.Void"; + public static final String STRING = "java.lang.String"; + public static final String BOOLEAN = "java.lang.Boolean"; public static final String OBJECTS = "java.util.Objects"; public static final String ITERABLE = "java.lang.Iterable"; public static final String COLLECTION = "java.util.Collection"; @@ -131,6 +144,7 @@ public final class Constants { public static final String SET = "java.util.Set"; public static final String OPTIONAL = "java.util.Optional"; public static final String STREAM = "java.util.stream.Stream"; + public static final String COLLECTORS = "java.util.stream.Collectors"; public static final String NULLABLE = "jakarta.annotation.Nullable"; public static final String NONNULL = "jakarta.annotation.Nonnull";