| Interface | Description | 
|---|---|
| MetadataSource | 
 Purpose: Interface used to support additional persistence unit
 metadata being provided from outside of what was packaged within the
 application. 
 | 
| ProjectCache | 
 Purpose: Interface used to support caching the project generated from metadata 
 avoiding costs associated processing the same metadata over multiple deployments. 
 | 
| Class | Description | 
|---|---|
| FileBasedProjectCache | 
 Purpose: Support serializing/deserializing a project representing application metadata
 to/from a file. 
 | 
| MetadataSourceAdapter | 
 Purpose: To provide a trivial implementation of MetadataRepository. 
 | 
| XMLMetadataSource | 
 Purpose: Support reading metadata for a persistence unit in an XML format from a URL and if the property is undefined,
 it will look for a file. 
 |