Skip to content

Commit

Permalink
HHH-12514 Avoid repeated creations of costly Xsd definitions and defi…
Browse files Browse the repository at this point in the history
…nition lookups
  • Loading branch information
Sanne committed Apr 23, 2018
1 parent 01ba7d9 commit 1c14f1a
Show file tree
Hide file tree
Showing 4 changed files with 10 additions and 4 deletions.
Expand Up @@ -38,7 +38,6 @@ public class MappingBinder extends AbstractBinder {
private static final Logger log = Logger.getLogger( MappingBinder.class );

private final XMLEventFactory xmlEventFactory = XMLEventFactory.newInstance();
private final MappingXsdSupport xsdSupport = new MappingXsdSupport();

private JAXBContext hbmJaxbContext;

Expand All @@ -60,7 +59,7 @@ protected Binding doBind(
log.debugf( "Performing JAXB binding of hbm.xml document : %s", origin.toString() );

XMLEventReader hbmReader = new HbmEventReader( staxEventReader, xmlEventFactory );
JaxbHbmHibernateMapping hbmBindings = jaxb( hbmReader, xsdSupport.hbmXsd().getSchema(), hbmJaxbContext(), origin );
JaxbHbmHibernateMapping hbmBindings = jaxb( hbmReader, MappingXsdSupport.INSTANCE.hbmXsd().getSchema(), hbmJaxbContext(), origin );
return new Binding<>( hbmBindings, origin );
}
else {
Expand Down
Expand Up @@ -23,6 +23,10 @@ public class ConfigXsdSupport {
*/
public static final ConfigXsdSupport INSTANCE = new ConfigXsdSupport();

private ConfigXsdSupport() {
//Do not construct new instances
}

private final XsdDescriptor jpa10 = LocalXsdResolver.buildXsdDescriptor(
"org/hibernate/jpa/persistence_1_0.xsd",
"1.0",
Expand Down
Expand Up @@ -50,6 +50,10 @@ public class MappingXsdSupport {
"http://www.hibernate.org/xsd/orm/hbm"
);

private MappingXsdSupport() {
//Do not construct new instances
}

public XsdDescriptor latestJpaDescriptor() {
return jpa22;
}
Expand Down
Expand Up @@ -210,7 +210,6 @@ public static Map<String, ParsedPersistenceXmlDescriptor> parse(
return parser.persistenceUnits;
}

private final ConfigXsdSupport xsdSupport = new ConfigXsdSupport();
private final ClassLoaderService classLoaderService;
private final PersistenceUnitTransactionType defaultTransactionType;
private final Map<String, ParsedPersistenceXmlDescriptor> persistenceUnits;
Expand Down Expand Up @@ -465,7 +464,7 @@ private void validate(Document document) {
// todo : add ability to disable validation...

final String version = document.getDocumentElement().getAttribute( "version" );
final Validator validator = xsdSupport.jpaXsd( version ).getSchema().newValidator();
final Validator validator = ConfigXsdSupport.INSTANCE.jpaXsd( version ).getSchema().newValidator();

List<SAXException> errors = new ArrayList<>();
validator.setErrorHandler( new ErrorHandlerImpl( errors ) );
Expand Down

0 comments on commit 1c14f1a

Please sign in to comment.