X-Git-Url: https://juplo.de/gitweb/?p=hibernate4-maven-plugin;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fde%2Fjuplo%2Fplugins%2Fhibernate%2FAbstractSchemaMojo.java;h=d50a1e7f2148b92728e1a8e5354bf9f0b08ef0e2;hp=b61d83c9ade9889a8d934871e32ee57ea669937c;hb=23668ccaa93bfbc583c1697214bae116bd9f4ef6;hpb=8e5921c9e76b4540f1d4b75e05e338001145ff6d diff --git a/src/main/java/de/juplo/plugins/hibernate/AbstractSchemaMojo.java b/src/main/java/de/juplo/plugins/hibernate/AbstractSchemaMojo.java index b61d83c9..d50a1e7f 100644 --- a/src/main/java/de/juplo/plugins/hibernate/AbstractSchemaMojo.java +++ b/src/main/java/de/juplo/plugins/hibernate/AbstractSchemaMojo.java @@ -438,10 +438,13 @@ public abstract class AbstractSchemaMojo extends AbstractMojo /** Load checksums for old mapping and configuration */ tracker.load(); - /** Create a BootstrapServiceRegistry with special ClassLoader */ + /** Create the ClassLoader */ + URLClassLoader classLoader = createClassLoader(); + + /** Create a BootstrapServiceRegistry with the created ClassLoader */ BootstrapServiceRegistry bootstrapServiceRegitry = new BootstrapServiceRegistryBuilder() - .applyClassLoader(createClassLoader()) + .applyClassLoader(classLoader) .build(); ClassLoaderService classLoaderService = bootstrapServiceRegitry.getService(ClassLoaderService.class); @@ -520,7 +523,22 @@ public abstract class AbstractSchemaMojo extends AbstractMojo ); } - build((MetadataImplementor)metadataBuilder.build()); + /** + * Change class-loader of current thread. + * This is necessary, because still not all parts of Hibernate 5 use + * the newly introduced ClassLoaderService and will fail otherwise! + */ + Thread thread = Thread.currentThread(); + ClassLoader contextClassLoader = thread.getContextClassLoader(); + try + { + thread.setContextClassLoader(classLoader); + build((MetadataImplementor)metadataBuilder.build()); + } + finally + { + thread.setContextClassLoader(contextClassLoader); + } } finally {