Hi everybody,
I am working on a project that is not mainstream Java EE.
Its target is Tomcat, but it uses JPA 2.0 (Eclipselink). I
have tailored the dependencies in the pom.xml as well as the
persistence.xml.
And now I want to use Forge to add some fields to the
existing entities. What I noticed is that when I run the
jpa-new-field command for the first time, it also installs the
JPA facet. Which in turns adds some unwanted dependencies to
my pom.xml and completely overwrites persistence.xml.
I dig into the code and found that the isInstalled method
of the JPA Facet returns true when persistence.xml file does
not exist and when pom.xml does not contain some dependencies.
These dependencies are different for JPA 2.0 and 2.1, but are
basically Hibernate JPA API and the Java EE API.
As a result of this, projects that don't target Java EE or
that use different artifacts for it or for JPA are going to
get their poms polluted and their persistence.xml files
overwritten.
So my proposal is to change the isInstalled method to only
check for the presence of persistence.xml. What do you think?
Regards,
Ivan