diff --git a/hibernate-core/src/main/java/org/hibernate/boot/internal/InFlightMetadataCollectorImpl.java b/hibernate-core/src/main/java/org/hibernate/boot/internal/InFlightMetadataCollectorImpl.java
index f39b55bf76..0d61ce73ea 100644
--- a/hibernate-core/src/main/java/org/hibernate/boot/internal/InFlightMetadataCollectorImpl.java
+++ b/hibernate-core/src/main/java/org/hibernate/boot/internal/InFlightMetadataCollectorImpl.java
@@ -59,7 +59,7 @@ import org.hibernate.boot.model.relational.QualifiedTableName;
import org.hibernate.boot.model.relational.SqlStringGenerationContext;
import org.hibernate.boot.model.source.internal.ImplicitColumnNamingSecondPass;
import org.hibernate.boot.model.source.spi.LocalMetadataBuildingContext;
-import org.hibernate.boot.models.categorize.internal.ClassLoaderServiceLoading;
+import org.hibernate.boot.models.internal.ClassLoaderServiceLoading;
import org.hibernate.boot.models.internal.GlobalRegistrationsImpl;
import org.hibernate.boot.models.internal.ModelsHelper;
import org.hibernate.boot.models.spi.GlobalRegistrations;
diff --git a/hibernate-core/src/main/java/org/hibernate/boot/model/process/spi/MetadataBuildingProcess.java b/hibernate-core/src/main/java/org/hibernate/boot/model/process/spi/MetadataBuildingProcess.java
index e69c8fddfb..2ed3821bb1 100644
--- a/hibernate-core/src/main/java/org/hibernate/boot/model/process/spi/MetadataBuildingProcess.java
+++ b/hibernate-core/src/main/java/org/hibernate/boot/model/process/spi/MetadataBuildingProcess.java
@@ -230,7 +230,8 @@ public class MetadataBuildingProcess {
return metadataCollector.buildMetadataInstance( rootMetadataBuildingContext );
}
- private static void coordinateProcessors(
+ @Internal
+ public static void coordinateProcessors(
ManagedResources managedResources,
MetadataBuildingOptions options,
MetadataBuildingContextRootImpl rootMetadataBuildingContext,
diff --git a/hibernate-core/src/main/java/org/hibernate/boot/models/AttributeNature.java b/hibernate-core/src/main/java/org/hibernate/boot/models/AttributeNature.java
new file mode 100644
index 0000000000..b4502957ac
--- /dev/null
+++ b/hibernate-core/src/main/java/org/hibernate/boot/models/AttributeNature.java
@@ -0,0 +1,21 @@
+/*
+ * SPDX-License-Identifier: LGPL-2.1-or-later
+ * Copyright Red Hat Inc. and Hibernate Authors
+ */
+package org.hibernate.boot.models;
+
+/**
+ * An enum defining the nature (categorization) of a persistent attribute.
+ *
+ * @see jakarta.persistence.metamodel.Attribute.PersistentAttributeType
+ */
+public enum AttributeNature {
+ BASIC,
+ EMBEDDED,
+ ANY,
+ TO_ONE,
+ ELEMENT_COLLECTION,
+ MANY_TO_ANY,
+ MANY_TO_MANY,
+ ONE_TO_MANY
+}
diff --git a/hibernate-core/src/main/java/org/hibernate/boot/models/Copied.java b/hibernate-core/src/main/java/org/hibernate/boot/models/Copied.java
deleted file mode 100644
index bcc2cfc805..0000000000
--- a/hibernate-core/src/main/java/org/hibernate/boot/models/Copied.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * SPDX-License-Identifier: LGPL-2.1-or-later
- * Copyright Red Hat Inc. and Hibernate Authors
- */
-package org.hibernate.boot.models;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * Indicates that the class is copied from hibernate-core and should ultimately use that one
- *
- * @author Steve Ebersole
- */
-@Target(ElementType.TYPE)
-@Retention(RetentionPolicy.RUNTIME)
-public @interface Copied {
- Class value() default void.class;
-}
diff --git a/hibernate-core/src/main/java/org/hibernate/boot/models/categorize/spi/JpaEventListenerStyle.java b/hibernate-core/src/main/java/org/hibernate/boot/models/JpaEventListenerStyle.java
similarity index 92%
rename from hibernate-core/src/main/java/org/hibernate/boot/models/categorize/spi/JpaEventListenerStyle.java
rename to hibernate-core/src/main/java/org/hibernate/boot/models/JpaEventListenerStyle.java
index a3ff3aab3f..32ec2d0bfd 100644
--- a/hibernate-core/src/main/java/org/hibernate/boot/models/categorize/spi/JpaEventListenerStyle.java
+++ b/hibernate-core/src/main/java/org/hibernate/boot/models/JpaEventListenerStyle.java
@@ -2,7 +2,7 @@
* SPDX-License-Identifier: LGPL-2.1-or-later
* Copyright Red Hat Inc. and Hibernate Authors
*/
-package org.hibernate.boot.models.categorize.spi;
+package org.hibernate.boot.models;
/**
* JPA defines 2 ways events callbacks can happen...
diff --git a/hibernate-core/src/main/java/org/hibernate/boot/models/MultipleAttributeNaturesException.java b/hibernate-core/src/main/java/org/hibernate/boot/models/MultipleAttributeNaturesException.java
index 321039ac19..5a6ce0b629 100644
--- a/hibernate-core/src/main/java/org/hibernate/boot/models/MultipleAttributeNaturesException.java
+++ b/hibernate-core/src/main/java/org/hibernate/boot/models/MultipleAttributeNaturesException.java
@@ -6,20 +6,21 @@ package org.hibernate.boot.models;
import java.util.EnumSet;
-import org.hibernate.MappingException;
-import org.hibernate.boot.models.categorize.spi.AttributeMetadata;
+import org.hibernate.AnnotationException;
+import org.hibernate.Incubating;
/**
- * Condition where an attribute indicates multiple {@linkplain AttributeMetadata.AttributeNature natures}
+ * Condition where an attribute indicates multiple {@linkplain AttributeNature natures}
*
* @author Steve Ebersole
*/
-public class MultipleAttributeNaturesException extends MappingException {
+@Incubating
+public class MultipleAttributeNaturesException extends AnnotationException {
private final String attributeName;
public MultipleAttributeNaturesException(
String attributeName,
- EnumSet