[jbosstools-dev] Problem with project m2e vs validation during import

Max Andersen manderse at redhat.com
Mon Oct 14 09:24:42 EDT 2013


On Fri, Oct 11, 2013 at 09:00:04AM -0400, Rob Cernich wrote:
>> Xavier,
>>
>> Worth checking out if your two different flows might be caused by your
>> validator/builder being added in different sequence. Causing you to miss
>> java changes ?
>
>Max, I think the m2e builder always wants to be last: https://github.com/eclipse/m2e-core/blob/master/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/ProjectConfigurationManager.java#L563

yes, but if another one adds builder after this code is run = strange things could happen ;)

/max

>>
>> /max (sent from my phone)
>>
>>
>> > On 10/10/2013, at 20.06, Alexey Kazakov <akazakov at exadel.com> wrote:
>> >
>> > I didn't notice any problems with CDI validation for m2e projects.
>> > But when we enable CDI support on the project (there is the only method
>> > for that which is used by m2e, preference pages, new project wizard,
>> > install facet delegates, etc)
>> > we make sure we have builders in .project in a proper order.
>> > So we don't just add cdi and validation builders. We re-order the list
>> > of builders in .project. See
>> > WebModelPlugin.addNatureToProjectWithValidationSupport();
>> > In our case four builders are critical: Java, KB, CDI, WST validation.
>> > And the order of these builders is critical for us.
>> > Every time m2e changes something in the project, the whole stack of
>> > builders is invoked and even if it does change the project step-by-step
>> > the final changing/building will fix false validation problems caused by
>> > previous changes.
>> >
>> > On 10/10/2013 09:50 AM, Rob Cernich wrote:
>> >>> There is something badly wrong if we need to start making that the habit
>> >>> (if
>> >>> your project is m2e then disable the validation and do it in a maven
>> >>> plugin/extension instead) :)
>> >> Yes.  That is the plan moving forward, but it was easier to get validation
>> >> into the tooling than it was to get it into the mojo, so...
>> >>
>> >>> ...but that said - I know we've seen more than a few issues with m2e vs
>> >>> eclipse causing "havoc" on builds.
>> >>>
>> >>> /max
>> >>>
>> >>>> On Thu, Oct 10, 2013 at 11:49:10AM -0400, Rob Cernich wrote:
>> >>>> Hey Xavier,
>> >>>>
>> >>>> I had a similar problem with the SwitchYard validator. Upon further
>> >>>> investigation, it appears m2e wants the Maven builder to be last in the
>> >>>> list. Based on that, I eventually gave up, disabled the SwitchYard
>> >>>> validator from the build and invoked it directly from the SwitchYard m2e
>> >>>> build participant. I suspect something similar will probably need to be
>> >>>> done in your case, assuming there is a JAX-RS participant for m2e.
>> >>>>
>> >>>> Hope that helps,
>> >>>> Rob
>> >>>>
>> >>>> ----- Original Message -----
>> >>>>
>> >>>>> hello,
>> >>>>> I'm banging my head against the wall trying to fix this issue: On a
>> >>>>> Full
>> >>>>> Publish LiveReload refreshes the browser before the application is
>> >>>>> fully
>> >>>>> restarted
>> >>>>> Here's the context: I have a kitchensink project in which there are are
>> >>>>> JAX-RS errors (a custom JAX-RS HTTP Method is missing some annotations)
>> >>>>> Now, here's the problem I have:
>> >>>>> - in some cases, the metamodel exists and is complete (i.e.: the m2e
>> >>>>> dependencies were properly set *before* the metamodel was built), and
>> >>>>> then,
>> >>>>> the validation occurs on the whole project, and I have the expect
>> >>>>> errors
>> >>>>> reported.
>> >>>>> - in other cases, the validation on the whole project is executed
>> >>>>> *before*
>> >>>>> m2e did set the dependencies on the project's classpath. At this stage,
>> >>>>> the
>> >>>>> metamodel exists but it is empty (the java classes have compilation
>> >>>>> errors
>> >>>>> because of missing libs, so no JAX-RS element was created). The
>> >>>>> metamodel
>> >>>>> is
>> >>>>> completed after m2e updated the project's classpath, but then a
>> >>>>> validation
>> >>>>> job is triggered because of bunch of xml files (not related to the
>> >>>>> JAX-RS
>> >>>>> classes) were processed by m2e and copied into the /target/classes
>> >>>>> output
>> >>>>> folder. This means that the full validation was not executed.
>> >>>>> Basically, it looks as if some operations (m2e / JAX-RS / validation)
>> >>>>> don't
>> >>>>> always occur in the same order, which sometimes result in incomplete
>> >>>>> validation and missing markers as expected. (not to mention that I have
>> >>>>> no
>> >>>>> clue how to force the order of execution, which makes the debugging
>> >>>>> *not
>> >>>>> fun*...)
>> >>>>> Any idea how I could make sure the validation (based on
>> >>>>> org.jboss.tools.common.validation) could be always called on the
>> >>>>> project
>> >>>>> after m2e sets the dependencies in the classpath ?
>> >>>>> Thanks for your help ;-)
>> >>>>> Best regards,
>> >>>>> /Xavier
>> >>>>> _______________________________________________
>> >>>>> jbosstools-dev mailing list
>> >>>>> jbosstools-dev at lists.jboss.org
>> >>>>> https://lists.jboss.org/mailman/listinfo/jbosstools-dev
>> >>>> _______________________________________________
>> >>>> jbosstools-dev mailing list
>> >>>> jbosstools-dev at lists.jboss.org
>> >>>> https://lists.jboss.org/mailman/listinfo/jbosstools-dev
>> >> _______________________________________________
>> >> jbosstools-dev mailing list
>> >> jbosstools-dev at lists.jboss.org
>> >> https://lists.jboss.org/mailman/listinfo/jbosstools-dev
>> >
>> > _______________________________________________
>> > jbosstools-dev mailing list
>> > jbosstools-dev at lists.jboss.org
>> > https://lists.jboss.org/mailman/listinfo/jbosstools-dev
>>
>> _______________________________________________
>> jbosstools-dev mailing list
>> jbosstools-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/jbosstools-dev
>>


More information about the jbosstools-dev mailing list