HHH-13138 By default, pass the class loader of the test to the EMF

Not doing it causes issues when using the BytecodeEnhancerRunner which
introduces an enhancing class loader.

We could do it on a per test basis but it's easier to do it once and for
all.

And it can still be overridden anyway.

(cherry picked from commit bae98ffacc)
This commit is contained in:
Guillaume Smet 2018-12-03 15:27:53 +01:00 committed by gbadner
parent d4c47d46f2
commit bc8bf9a60d
1 changed files with 4 additions and 4 deletions

View File

@ -14,6 +14,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import javax.persistence.EntityManager;
import javax.persistence.SharedCacheMode;
import javax.persistence.ValidationMode;
@ -21,20 +22,17 @@ import javax.persistence.spi.PersistenceUnitTransactionType;
import org.hibernate.boot.registry.internal.StandardServiceRegistryImpl;
import org.hibernate.bytecode.enhance.spi.EnhancementContext;
import org.hibernate.cfg.AvailableSettings;
import org.hibernate.cfg.Environment;
import org.hibernate.dialect.Dialect;
import org.hibernate.engine.spi.SessionFactoryImplementor;
import org.hibernate.jpa.AvailableSettings;
import org.hibernate.jpa.HibernatePersistenceProvider;
import org.hibernate.jpa.boot.spi.Bootstrap;
import org.hibernate.jpa.boot.spi.PersistenceUnitDescriptor;
import org.hibernate.testing.junit4.BaseUnitTestCase;
import org.junit.After;
import org.junit.Before;
import org.jboss.logging.Logger;
/**
* A base class for all ejb tests.
*
@ -209,6 +207,8 @@ public abstract class BaseEntityManagerFunctionalTestCase extends BaseUnitTestCa
Map<Object, Object> config = Environment.getProperties();
ArrayList<Class> classes = new ArrayList<Class>();
config.put( AvailableSettings.CLASSLOADERS, getClass().getClassLoader() );
classes.addAll( Arrays.asList( getAnnotatedClasses() ) );
config.put( AvailableSettings.LOADED_CLASSES, classes );
for ( Map.Entry<Class, String> entry : getCachedClasses().entrySet() ) {