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