Class MetadataSources

  • All Implemented Interfaces:
    java.io.Serializable

    public class MetadataSources
    extends java.lang.Object
    implements java.io.Serializable
    Entry point into working with sources of metadata information (mapping XML, annotations). Tell Hibernate about sources and then call buildMetadata(), or use getMetadataBuilder() to customize how sources are processed (naming strategies, etc).
    Since:
    5.0
    See Also:
    Serialized Form
    • Constructor Detail

      • MetadataSources

        public MetadataSources()
      • MetadataSources

        public MetadataSources​(ServiceRegistry serviceRegistry)
        Create a metadata sources using the specified service registry.
        Parameters:
        serviceRegistry - The service registry to use.
      • MetadataSources

        public MetadataSources​(ServiceRegistry serviceRegistry,
                               boolean disableXmlMappingBinders)
        Consider this an SPI, used by Quarkus
        Parameters:
        serviceRegistry -
        disableXmlMappingBinders -
    • Method Detail

      • isExpectedServiceRegistryType

        protected static boolean isExpectedServiceRegistryType​(ServiceRegistry serviceRegistry)
      • getXmlBindings

        public java.util.List<Binding> getXmlBindings()
      • getAnnotatedPackages

        public java.util.Collection<java.lang.String> getAnnotatedPackages()
      • getAnnotatedClasses

        public java.util.Collection<java.lang.Class<?>> getAnnotatedClasses()
      • getAnnotatedClassNames

        public java.util.Collection<java.lang.String> getAnnotatedClassNames()
      • getMetadataBuilder

        public MetadataBuilder getMetadataBuilder()
        Get a builder for metadata where non-default options can be specified.
        Returns:
        The built metadata.
      • addAnnotatedClass

        public MetadataSources addAnnotatedClass​(java.lang.Class annotatedClass)
        Read metadata from the annotations attached to the given class.
        Parameters:
        annotatedClass - The class containing annotations
        Returns:
        this (for method chaining)
      • addAnnotatedClassName

        public MetadataSources addAnnotatedClassName​(java.lang.String annotatedClassName)
        Read metadata from the annotations attached to the given class. The important distinction here is that the Class will not be accessed until later which is important for on-the-fly bytecode-enhancement
        Parameters:
        annotatedClassName - The name of a class containing annotations
        Returns:
        this (for method chaining)
      • addPackage

        public MetadataSources addPackage​(java.lang.String packageName)
        Read package-level metadata.
        Parameters:
        packageName - java package name without trailing '.', cannot be null
        Returns:
        this (for method chaining)
      • addPackage

        public MetadataSources addPackage​(java.lang.Package packageRef)
        Read package-level metadata.
        Parameters:
        packageRef - Java Package reference
        Returns:
        this (for method chaining)
      • addClass

        @Deprecated
        public MetadataSources addClass​(java.lang.Class entityClass)
        Deprecated.
        hbm.xml is a legacy mapping format now considered deprecated.
        Read a mapping as an application resource using the convention that a class named foo.bar.Foo is mapped by a file named foo/bar/Foo.hbm.xml which can be resolved as a classpath resource.
        Parameters:
        entityClass - The mapped class. Cannot be null null.
        Returns:
        this (for method chaining purposes)
      • addResource

        public MetadataSources addResource​(java.lang.String name)
        Read mappings as an application resourceName (i.e. classpath lookup).
        Parameters:
        name - The resource name
        Returns:
        this (for method chaining purposes)
      • addFile

        public MetadataSources addFile​(java.lang.String path)
        Read mappings from a particular XML file
        Parameters:
        path - The path to a file. Expected to be resolvable by File(String)
        Returns:
        this (for method chaining purposes)
        See Also:
        addFile(java.io.File)
      • addFile

        public MetadataSources addFile​(java.io.File file)
        Read mappings from a particular XML file
        Parameters:
        file - The reference to the XML file
        Returns:
        this (for method chaining purposes)
      • addXmlBinding

        public MetadataSources addXmlBinding​(Binding<?> binding)
        Add XML mapping bindings created from an arbitrary source by the binder.
        Parameters:
        binding - The binding.
        Returns:
        this (for method chaining purposes)
      • addCacheableFile

        public MetadataSources addCacheableFile​(java.io.File file)
        Add a cached mapping file. A cached file is a serialized representation of the DOM structure of a particular mapping. It is saved from a previous call as a file with the name {xmlFile}.bin where {xmlFile} is the name of the original mapping file.

        If a cached {xmlFile}.bin exists and is newer than {xmlFile}, the {xmlFile}.bin file will be read directly. Otherwise {xmlFile} is read and then serialized to {xmlFile}.bin for use the next time.
        Parameters:
        file - The cacheable mapping file to be added, {xmlFile} in above discussion.
        Returns:
        this (for method chaining purposes)
      • addCacheableFileStrictly

        public MetadataSources addCacheableFileStrictly​(java.io.File file)
                                                 throws SerializationException,
                                                        java.io.FileNotFoundException
        INTENDED FOR TESTSUITE USE ONLY!

        Much like addCacheableFile(java.io.File) except that here we will fail immediately if the cache version cannot be found or used for whatever reason

        Parameters:
        file - The xml file, not the bin!
        Returns:
        The dom "deserialized" from the cached file.
        Throws:
        SerializationException - Indicates a problem deserializing the cached dom tree
        java.io.FileNotFoundException - Indicates that the cached file was not found or was not usable.
      • addInputStream

        public MetadataSources addInputStream​(InputStreamAccess xmlInputStreamAccess)
        Read metadata from an InputStream access
        Parameters:
        xmlInputStreamAccess - Access to an input stream containing a DOM.
        Returns:
        this (for method chaining purposes)
      • addInputStream

        public MetadataSources addInputStream​(java.io.InputStream xmlInputStream)
        Read metadata from an InputStream.
        Parameters:
        xmlInputStream - The input stream containing a DOM.
        Returns:
        this (for method chaining purposes)
      • addURL

        public MetadataSources addURL​(java.net.URL url)
        Read mappings from a URL
        Parameters:
        url - The url for the mapping document to be read.
        Returns:
        this (for method chaining purposes)
      • addDocument

        @Deprecated
        public MetadataSources addDocument​(org.w3c.dom.Document document)
        Deprecated.
        since 5.0. Use one of the other methods for passing mapping source(s).
        Read mappings from a DOM Document
        Parameters:
        document - The DOM document
        Returns:
        this (for method chaining purposes)
      • addJar

        public MetadataSources addJar​(java.io.File jar)
        Read all mappings from a jar file.

        Assumes that any file named *.hbm.xml is a mapping document.

        Parameters:
        jar - a jar file
        Returns:
        this (for method chaining purposes)
      • addDirectory

        public MetadataSources addDirectory​(java.io.File dir)
        Read all mapping documents from a directory tree.

        Assumes that any file named *.hbm.xml is a mapping document.

        Parameters:
        dir - The directory
        Returns:
        this (for method chaining purposes)
        Throws:
        MappingException - Indicates problems reading the jar file or processing the contained mapping documents.