Messieurs-dames, As I could not find much clues about the right way to do it, here I come: I'm trying to get an EntityManagerFactory properly setup from the Persistence class, but I cannot get further than the following exception
javax.persistence.PersistenceException: No Persistence provider for EntityManager named teamplay_test at javax.persistence.Persistence.createEntityManagerFactory( Persistence.java:89) at com.gdteam.teamplay.domain.manager.TeamplayEMFactoryManager.get ( TeamplayEMFactoryManager.java:60) at com.gdteam.teamplay.test.persistence.PersistenceUtilTest.setUp( PersistenceUtilTest.java:19) at junit.framework.TestCase.runBare(TestCase.java:125) at junit.framework.TestResult$1.protect (TestResult.java:106) at junit.framework.TestResult.runProtected(TestResult.java:124) at junit.framework.TestResult.run(TestResult.java:109) at junit.framework.TestCase.run(TestCase.java:118) at junit.framework.TestSuite.runTest(TestSuite.java:208) at junit.framework.TestSuite.run(TestSuite.java:203) Here is the code part that leads to the exception: public class TeamplayEMFactoryManager { ... private final Map<String, String> props = new HashMap<String, String>(); private final Map<String, EntityManagerFactory> map = new HashMap<String, EntityManagerFactory>(); ... private TeamplayEMFactoryManager() { props.put("openjpa.ConnectionDriverName", "org.hsqldb.jdbcDriver"); props.put("openjpa.ConnectionUserName", "sa"); props.put("openjpa.ConnectionPassword", ""); props.put("openjpa.Log", "DefaultLevel=WARN, Tool=INFO"); props.put("openjpa.MetaDataFactory", "jpa(Types="+buildTypes()+")"); } .. public EntityManagerFactory get(String url) { EntityManagerFactory factory = null; if (null == url || url.length() == 0 ) { url = "default"; } factory = this.map.get(url); if (null == factory) { if ( "default".equals(url)) { 1- factory = Persistence.createEntityManagerFactory(null); } else { Map<String , String> map = new HashMap<String, String>(props); map.put("openjpa.ConnectionURL ", buildUrl(url)); 2- factory = Persistence.createEntityManagerFactory(url,map); } this.map.put(url, factory); } return factory; } ... } Note : I'm using a persistence.xml for single persitence unit creation, and this test works fine. I've had a dive into the source code, and found the provider is lookuped and found by the glassfish persistence implementation class. The exception is raised on the open jpa side, and I know I'm missing some configuration elements, but I cannot guess what's missing? any hint? thank you guys