[forge-dev] JPA facet isInstalled implementation
ggastald at redhat.com
Mon Jul 6 16:19:14 EDT 2015
It seems that in your case the JPA 2.0 classes are defined in a
different JAR (a different groupId/artifactId) ?
Your idea might work, however, just make sure that the version attribute
in the persistence.xml defines the installed facet version (JPAFacet_2_0
when version="2.0" and JPAFacet_2_1 when version="2.1").
On 07/06/2015 05:13 PM, Ivan St. Ivanov wrote:
> Hi George,
> My idea is the following: if you don't have persistence.xml, then most
> probably you don't have the dependencies either. Definitely the facet
> is not installed, so Forge installs it for you by adding both the
> persistence.xml and the dependencies.
> But if you have persistence.xml already in your project in 99% of the
> cases you have already setup the dependencies as well. So the facet is
> there and Forge does not need to install it.
> On Mon, Jul 6, 2015 at 11:06 PM, George Gastaldi <ggastald at redhat.com
> <mailto:ggastald at redhat.com>> wrote:
> Hi Ivan,
> I am not sure this is enough. How can you assure that no
> compilation errors would occur when @Entity or any other
> JPA-related class is used?
> Best Regards,
> George Gastaldi
> On 07/06/2015 05:02 PM, Ivan St. Ivanov wrote:
>> 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
>> 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?
>> forge-dev mailing list
>> forge-dev at lists.jboss.org <mailto:forge-dev at lists.jboss.org>
> forge-dev mailing list
> forge-dev at lists.jboss.org <mailto:forge-dev at lists.jboss.org>
> forge-dev mailing list
> forge-dev at lists.jboss.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the forge-dev