[forge-dev] JPA facet isInstalled implementation

Ivan St. Ivanov ivan.st.ivanov at gmail.com
Mon Jul 6 16:32:57 EDT 2015


Well, besides adding this, we should think of adding also the openjpa
dependency, also the hibernate impl dependency and also removing the Java
EE 6 dependency. And we also have to make a more sophisticated check to
make sure we apply 'or' instead of 'and' when checking for the presence of
these dependencies...

Too complex and error prone in my opinion, don't you think?

On Mon, Jul 6, 2015 at 11:30 PM, George Gastaldi <ggastald at redhat.com>
wrote:

> Right, so the easiest way to solve this is to add this dependency to the
> JPAFacet_2_0.getRequiredDependencies().
>
> But I am not opposed on your proposed change, as long as no compilation
> issues happen.
>
> Thanks,
> George Gastaldi
>
>
> -------- Mensagem original --------
> De: "Ivan St. Ivanov" <ivan.st.ivanov at gmail.com>
> Data: 06/07/2015 17:25 (GMT-03:00)
> Para: forge-dev List <forge-dev at lists.jboss.org>
> Assunto: Re: [forge-dev] JPA facet isInstalled implementation
>
>
> Hi George,
>
> As I mentioned, I am using Eclipselink and have directly the
> dependency org.eclipse.persistence:eclipselink. On top of that, I don't
> have the Java EE API dependency. My persistence.xml is fine.
>
> What I really want here is when I add a new field Forge to find out that
> this project has already persistence.xml and not try to rebuild it just
> because I am missing some dependencies in the pom.xml.
>
> Cheers,
> Ivan
>
> On Mon, Jul 6, 2015 at 11:19 PM, George Gastaldi <ggastald at redhat.com>
> wrote:
>
>>  Hey Ivan,
>>
>> 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").
>>
>> Best Regards,
>> George Gastaldi
>>
>>
>> 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.
>>
>>  Regards,
>> Ivan
>>
>> On Mon, Jul 6, 2015 at 11:06 PM, George Gastaldi <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 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
>>>
>>>
>>>  _______________________________________________
>>> forge-dev mailing listforge-dev at lists.jboss.orghttps://lists.jboss.org/mailman/listinfo/forge-dev
>>>
>>>
>>>
>>> _______________________________________________
>>> forge-dev mailing list
>>> forge-dev at lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/forge-dev
>>>
>>
>>
>>
>> _______________________________________________
>> forge-dev mailing listforge-dev at lists.jboss.orghttps://lists.jboss.org/mailman/listinfo/forge-dev
>>
>>
>>
>> _______________________________________________
>> forge-dev mailing list
>> forge-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/forge-dev
>>
>
>
> _______________________________________________
> forge-dev mailing list
> forge-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/forge-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/forge-dev/attachments/20150706/4fdff1e2/attachment-0001.html 


More information about the forge-dev mailing list