Class MetadataSources
- java.lang.Object
-
- org.hibernate.boot.MetadataSources
-
- All Implemented Interfaces:
Serializable
public class MetadataSources extends Object implements Serializable
Entry point for working with sources of O/R mapping metadata, either in the form of annotated classes, or as XML mapping documents.Note that XML mappings may be expressed using the JPA
orm.xml
format, or in Hibernate's legacy.hbm.xml
format.An instance of
MetadataSources
may be obtained simply by instantiation, usingnew MetadataSources()
. The client must register sources and then callbuildMetadata()
, or usegetMetadataBuilder()
to customize how the sources are processed (by registering naming strategies, etc).As an alternative to working directly with
MetadataSources
, andMetadata
, a program may useConfiguration
.- Since:
- 5.0
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description MetadataSources()
Create a new instance, using a defaultBootstrapServiceRegistry
.MetadataSources(ServiceRegistry serviceRegistry)
Create a new instance using the givenServiceRegistry
.MetadataSources(ServiceRegistry serviceRegistry, XmlMappingBinderAccess xmlMappingBinderAccess)
Create a new instance using the givenServiceRegistry
.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description MetadataSources
addAnnotatedClass(Class<?> annotatedClass)
Read metadata from the annotations attached to the given class.MetadataSources
addAnnotatedClasses(Class<?>... annotatedClasses)
Vararg form ofaddAnnotatedClass(Class)
.MetadataSources
addAnnotatedClassName(String annotatedClassName)
Read metadata from the annotations attached to the given class.MetadataSources
addAnnotatedClassNames(String... annotatedClassNames)
Vararg form ofaddAnnotatedClassName(String)
.MetadataSources
addCacheableFile(File file)
Add a cached mapping file.MetadataSources
addCacheableFile(File file, File cacheDirectory)
Add a cached mapping file.MetadataSources
addCacheableFile(String path)
Add acached mapping file
.MetadataSources
addCacheableFile(String path, File cacheDirectory)
Add acached mapping file
.MetadataSources
addCacheableFileStrictly(File file)
INTENDED FOR TESTSUITE USE ONLY!MetadataSources
addCacheableFileStrictly(File file, File cacheDir)
INTENDED FOR TESTSUITE USE ONLY!MetadataSources
addDirectory(File dir)
Read all.hbm.xml
mapping documents from a directory tree.MetadataSources
addFile(File file)
Read mappings from a particular XML file.MetadataSources
addFile(String path)
Read mappings from a particular XML file.MetadataSources
addInputStream(InputStream xmlInputStream)
Read metadata from anInputStream
.MetadataSources
addInputStream(InputStreamAccess xmlInputStreamAccess)
Read metadata from anInputStream
accessMetadataSources
addJar(File jar)
Read all.hbm.xml
mappings from a jar file.MetadataSources
addPackage(Package packageRef)
Read package-level metadata.MetadataSources
addPackage(String packageName)
Read package-level metadata.MetadataSources
addQueryImport(String importedName, Class<?> target)
MetadataSources
addResource(String name)
Read mappings as an application resourceName (i.e.MetadataSources
addURL(URL url)
Read mappings from aURL
MetadataSources
addXmlBinding(Binding<?> binding)
Add XML mapping bindings created from an arbitrary source by the binder.Metadata
buildMetadata()
Shorthand form of callinggetMetadataBuilder()
and using itsMetadataBuilder.build()
method in cases where the application wants to accept the defaults.Metadata
buildMetadata(StandardServiceRegistry serviceRegistry)
Collection<Class<?>>
getAnnotatedClasses()
Collection<String>
getAnnotatedClassNames()
Collection<String>
getAnnotatedPackages()
Map<String,Class<?>>
getExtraQueryImports()
MetadataBuilder
getMetadataBuilder()
Get a builder for metadata where non-default options can be specified.MetadataBuilder
getMetadataBuilder(StandardServiceRegistry serviceRegistry)
Get a builder for metadata where non-default options can be specified.ServiceRegistry
getServiceRegistry()
List<Binding<?>>
getXmlBindings()
XmlMappingBinderAccess
getXmlMappingBinderAccess()
protected static boolean
isExpectedServiceRegistryType(ServiceRegistry serviceRegistry)
-
-
-
Constructor Detail
-
MetadataSources
public MetadataSources()
Create a new instance, using a defaultBootstrapServiceRegistry
.
-
MetadataSources
public MetadataSources(ServiceRegistry serviceRegistry)
Create a new instance using the givenServiceRegistry
.- Parameters:
serviceRegistry
- The service registry to use.
-
MetadataSources
public MetadataSources(ServiceRegistry serviceRegistry, XmlMappingBinderAccess xmlMappingBinderAccess)
Create a new instance using the givenServiceRegistry
.- Parameters:
serviceRegistry
- The service registry to use.
-
-
Method Detail
-
isExpectedServiceRegistryType
protected static boolean isExpectedServiceRegistryType(ServiceRegistry serviceRegistry)
-
getXmlMappingBinderAccess
public XmlMappingBinderAccess getXmlMappingBinderAccess()
-
getAnnotatedPackages
public Collection<String> getAnnotatedPackages()
-
getAnnotatedClasses
public Collection<Class<?>> getAnnotatedClasses()
-
getAnnotatedClassNames
public Collection<String> getAnnotatedClassNames()
-
getServiceRegistry
public ServiceRegistry getServiceRegistry()
-
getMetadataBuilder
public MetadataBuilder getMetadataBuilder()
Get a builder for metadata where non-default options can be specified.- Returns:
- The built metadata.
-
getMetadataBuilder
@Internal public MetadataBuilder getMetadataBuilder(StandardServiceRegistry serviceRegistry)
Get a builder for metadata where non-default options can be specified.- Returns:
- The built metadata.
-
buildMetadata
public Metadata buildMetadata()
Shorthand form of callinggetMetadataBuilder()
and using itsMetadataBuilder.build()
method in cases where the application wants to accept the defaults.- Returns:
- The built metadata.
-
buildMetadata
public Metadata buildMetadata(StandardServiceRegistry serviceRegistry)
-
addAnnotatedClass
public MetadataSources addAnnotatedClass(Class<?> annotatedClass)
Read metadata from the annotations attached to the given class.- Parameters:
annotatedClass
- The class containing annotations- Returns:
- this (for method chaining)
-
addAnnotatedClasses
public MetadataSources addAnnotatedClasses(Class<?>... annotatedClasses)
Vararg form ofaddAnnotatedClass(Class)
.
-
addAnnotatedClassName
public MetadataSources addAnnotatedClassName(String annotatedClassName)
Read metadata from the annotations attached to the given class. The important distinction here is that theClass
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)
-
addAnnotatedClassNames
public MetadataSources addAnnotatedClassNames(String... annotatedClassNames)
Vararg form ofaddAnnotatedClassName(String)
.
-
addQueryImport
public MetadataSources addQueryImport(String importedName, Class<?> target)
-
addPackage
public MetadataSources addPackage(String packageName)
Read package-level metadata.- Parameters:
packageName
- java package name without trailing '.', cannot benull
- Returns:
- this (for method chaining)
-
addPackage
public MetadataSources addPackage(Package packageRef)
Read package-level metadata.- Parameters:
packageRef
- Java Package reference- Returns:
- this (for method chaining)
-
addResource
public MetadataSources addResource(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(String path)
Read mappings from a particular XML file.The given path is resolved using
File(String)
.- Parameters:
path
- The path to a file- Returns:
- this (for method chaining purposes)
- See Also:
addFile(File)
-
addFile
public MetadataSources addFile(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(String path)
Add acached mapping file
.The given path is resolved using
File(String)
.- Parameters:
path
- The path to a file- Returns:
- this (for method chaining purposes)
- See Also:
addCacheableFile(File)
-
addCacheableFile
public MetadataSources addCacheableFile(String path, File cacheDirectory)
Add acached mapping file
.The given path is resolved using
File(String)
.- Parameters:
path
- The path to a file- Returns:
- this (for method chaining purposes)
- See Also:
addCacheableFile(File)
-
addCacheableFile
public MetadataSources addCacheableFile(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)
-
addCacheableFile
public MetadataSources addCacheableFile(File file, File cacheDirectory)
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(File file) throws SerializationException
INTENDED FOR TESTSUITE USE ONLY!Much like
addCacheableFile(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 treeMappingNotFoundException
- Indicates that the cached file was not found or was not usable.
-
addCacheableFileStrictly
public MetadataSources addCacheableFileStrictly(File file, File cacheDir) throws SerializationException
INTENDED FOR TESTSUITE USE ONLY!Much like
addCacheableFile(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 treeMappingNotFoundException
- Indicates that the cached file was not found or was not usable.
-
addInputStream
public MetadataSources addInputStream(InputStreamAccess xmlInputStreamAccess)
Read metadata from anInputStream
access- Parameters:
xmlInputStreamAccess
- Access to an input stream containing a DOM.- Returns:
- this (for method chaining purposes)
-
addInputStream
public MetadataSources addInputStream(InputStream xmlInputStream)
Read metadata from anInputStream
.- Parameters:
xmlInputStream
- The input stream containing a DOM.- Returns:
- this (for method chaining purposes)
-
addURL
public MetadataSources addURL(URL url)
Read mappings from aURL
- Parameters:
url
- The url for the mapping document to be read.- Returns:
- this (for method chaining purposes)
-
addJar
public MetadataSources addJar(File jar)
Read all.hbm.xml
mappings from a jar file.Assumes that any file named
*.hbm.xml
is a mapping document. This method does not supportorm.xml
files!- Parameters:
jar
- a jar file- Returns:
- this (for method chaining purposes)
-
addDirectory
public MetadataSources addDirectory(File dir)
Read all.hbm.xml
mapping documents from a directory tree.Assumes that any file named
*.hbm.xml
is a mapping document. This method does not supportorm.xml
files!- Parameters:
dir
- The directory- Returns:
- this (for method chaining purposes)
- Throws:
MappingException
- Indicates problems reading the jar file or processing the contained mapping documents.
-
-