When creating EntityManagerFactory using OpenEJB, exclude-unlisted-classes works as expected. However, when creating it directly as in:
props.setProperty("javax.persistence.jdbc.driver", this.driver); props.setProperty("javax.persistence.jdbc.url", this.url); props.setProperty("javax.persistence.jdbc.user", this.username); props.setProperty("javax.persistence.jdbc.password", this.password); props.setProperty("javax.persistence.transactionType", PersistenceUnitTransactionType.RESOURCE_LOCAL.name()); EntityManagerFactory emf = Persistence.createEntityManagerFactory(null, props); The classes are not scanned. The only classes that are loaded and created tables into the DB are those listed in the persistence.xml I noticed that openejb and openjpa has their own implementation of PersistenceUnitInfoImpl. I just need to confirm if this is a bug, or I am missing something. Thank you.