I've just recently started using OpenJPA and from a new user perspective I
interpreted "openjpa.RuntimeUnenhancedClasses=supported" to mean first check if
the code is running within an app server and let the app server enhance the
classes *then* fallback and actually do a runtime enhancement. It turns
out "supported" may be better described as "true" in that it only makes one
enhancement attempt then fails. I can successfully use "supported" when running
my small JPA project not in an app server but when I put it on an app server I
need to create my emf in a slightly different manner:
if (isWebSphere()) {
Map<String, String> configOverrides = new HashMap<String, String>();
configOverrides.put("openjpa.RuntimeUnenhancedClasses", "unsupported");
entityManagerFactory =
Persistence.createEntityManagerFactory(persistenceUnitName, configOverrides);
} else {
entityManagerFactory =
Persistence.createEntityManagerFactory(persistenceUnitName);
}
I wish "supported" tried harder before failing. I've glanced at OPENJPA-377 and
OPENJPA-651. Maybe I'm approaching things incorrectly?
Does enhancing my classes at build time in my Ant script give me the same
outcome/performance as letting the app server enhance my classes?