Hmm, digging into this some more, noticed a couple of things:
a) objectdb.conf file was no longer being found in src/main/resources when run by JUnit in IntelliJ, this had been working fine.
- I now need to explicitly set the config file before any tests with:
System.setProperty("objectdb.home", "<full path to src/main/resources>")
b) So, now that I'm sure that objectdb.conf is found
- The config path as set above is printed to the logs, and
- I create instances of > 10 entity classes just to be sure
However, now the system complains:
<pre>
[ObjectDB 2.8.0_04] javax.persistence.PersistenceException
Type au.Person is not enhanced (enhance the type or enable reflection)
(error 304)
at com.objectdb.jpa.EMImpl.persist(EMImpl.java:418)
</pre>
This resolves when I change:
<enhancement agent = "true" reflection = "error"/>
to
<enhancement agent = "true" reflection = "force"/>
So, now that I know I have the correct objectdb.conf file I will revisit the issue of dirty tracking of arrays. However, I have these new concerns:
1) why does objectdb no longer pick up objectdb.conf in src/main/resources?
2) why am I now getting an error regarding enhancement - is this because I'm using openjdk version "1.8.0_212"?
- the documents mention openjdk6 doesn't support runtime enhancement, is this still the case??
3) How can I pre-enhance classes when running junit?
4) How can I pre-enhance classes with Gradle?