Hi Xavier,
How do you build JAX-RS model? Is there any builder for that?
Common validator manager is invoked by WST validation builder. So if you
use some builder for JAX-RS then make sure it's added to .project before
WST validation builder. BTW our common validation framework can help you
to validate the order of the builders.
If you don't use some builder for building JAX-RS model then you have to
build it in your validator.
On 10/18/2012 06:42 AM, Xavier Coulon wrote:
Hello,
I'm facing an issue here (
https://issues.jboss.org/browse/JBIDE-12690)
which basically says that the imported project is not correctly
validated. It has JAX-RS errors but nothing is reported after the
import operation.
In my console logs, I have the following traces:
14:43:13.714 [Worker-9] Building JAX-RS Metamodel after Java element
changed...
14:43:13.715 [Worker-9] Some java elements changed:[PostChange]
14:43:13.715 [Worker-9] **rejected** JavaElementDelta [PostChange]
JavaModel '' [*without* AST] changed:{Children}]
14:43:13.715 [Worker-9] **rejected** JavaElementDelta [PostChange]
JavaProject 'jboss-richfaces-webapp' [*without* AST] changed:{Content}]
14:43:13.715 [Worker-9] Processing 0 change(s)...
14:43:13.715 [Worker-9] Done processing Java changes.
14:43:14.721 [Worker-1] *** Validating all JAX-RS elements in project
jboss-richfaces-webapp ***
14:43:14.731 [Worker-1] Validation done.
...
...
...
!MESSAGE Building JAX-RS metamodel for project jboss-richfaces-webapp
14:43:24.703 [Worker-11] Initiating a JAX-RS Metamodel build on
project 'jboss-richfaces-webapp' after resource changed event
org.eclipse.core.internal.events.ResourceChangeEvent[source=P/jboss-richfaces-webapp]
14:43:24.704 [Worker-0] Building JAX-RS Metamodel after resource
changed...
14:43:24.713 [Worker-0] JAX-RS Metamodel created for project
jboss-richfaces-webapp
14:43:24.717 [Worker-0] Processing project 'jboss-richfaces-webapp'...
14:43:24.718 [Worker-0] Processing ResourceChangedEvent [Project
'/jboss-richfaces-webapp' added]
14:43:27.686 [Worker-0] Indexing JavaApplication 'JaxRsActivator':
path=/rest
14:43:27.797 [Worker-0] Indexing Resource 'MemberResourceRESTService'
(root=true)
14:43:27.800 [Worker-0] Indexing ResourceMethod
'MemberResourceRESTService.lookupMemberById' (SUBRESOURCE_METHOD)
14:43:27.801 [Worker-0] Indexing ResourceMethod
'MemberResourceRESTService.createMember' (RESOURCE_METHOD)
14:43:27.801 [Worker-0] Indexing ResourceMethod
'MemberResourceRESTService.listAllMembers' (RESOURCE_METHOD)
14:43:27.802 [Worker-0] Resulting event: JaxrsElementChange:
[Application Added] JaxRsActivator
14:43:27.803 [Worker-0] Resulting event: JaxrsElementChange: [Resource
Added] MemberResourceRESTService
14:43:27.806 [Worker-0] Processing ResourceChangedEvent [File
'/jboss-richfaces-webapp/src/main/webapp/WEB-INF/web.xml' added]
14:43:27.902 [Worker-0] No servlet mapping found for class
'org.jboss.tools.example.richfaces.rest.JaxRsActivator' in file
'src/main/webapp/WEB-INF/web.xml'
14:43:27.911 [Worker-0] No servlet mapping found for class
'javax.ws.rs.core.Application' in file 'src/main/webapp/WEB-INF/web.xml'
14:43:27.911 [Worker-0] Done processing resource results.
14:43:27.911 [Worker-0] Processing 2 JAX-RS element change(s)...
14:43:27.911 [Worker-0] Processing JaxrsElementChange: [Application
Added] JaxRsActivator
14:43:27.911 [Worker-0] Processing JaxrsElementChange: [Resource
Added] MemberResourceRESTService
14:43:27.915 [Worker-0] --> JaxrsEndpointChange: [Added] GET
/rest/members/{id:[0-9][0-9]*} | consumes:[*/*] |
produces=[application/json] in method
MemberResourceRESTService.lookupMemberById(...)
14:43:27.915 [Worker-0] --> JaxrsEndpointChange: [Added] POST
/rest/members | consumes:[application/json] |
produces=[application/json] in method
MemberResourceRESTService.createMember(...)
14:43:27.915 [Worker-0] --> JaxrsEndpointChange: [Added] GET
/rest/members | consumes:[*/*] | produces=[application/json] in method
MemberResourceRESTService.listAllMembers(...)
14:43:27.915 [Worker-0] Done processing JAX-RS element change(s).
14:43:27.916 [Worker-0] *** Notifying the UI that JAX-RS metamodel was
Added (including 3 endpoint changes) ***
14:43:27.917 [Worker-0] JAX-RS Metamodel for project
'jboss-richfaces-webapp' now has 6 HttpMethods, 1 Resources and 3
Endpoints.
14:43:28.136 [Worker-0] Validation done.
14:44:59.105 [Worker-1] *** Validating some JAX-RS elements bound to
files [L/jboss-richfaces-webapp/target/test-classes/arquillian.xml,
L/jboss-richfaces-webapp/target/test-classes/META-INF/test-persistence.xml,
L/jboss-richfaces-webapp/target/test-classes/test-ds.xml] that just
changed in project jboss-richfaces-webapp... ***
14:45:11.719 [Worker-1] Validation done.
The problem I've spotted is that the JAX-RS validator is called twice:
the first time to validate *all* the JAX-RS elements, but this call
occurs *before* the JAX-RS metamodel was built, because none of the
events that were caught by the listener in the plugin were 'eligible'
to build the JAX-RS metamodel.
[moving a bit forward during the import operation -> some logs were
removed]
Then, once the listener caught a "ResourceChangedEvent" about the
ADDED project, the JAX-RS metamodel is built, but the validator is
called for only a couple of .xml files that changed, not the whole
project that was imported.
How could I trigger a 'validateAll' in this case ?
Thanks
Best regards,
/Xavier
_______________________________________________
jbosstools-dev mailing list
jbosstools-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jbosstools-dev