### Eclipse Workspace Patch 1.0 #P org.jboss.tools.ws.jaxrs.ui Index: src/org/jboss/tools/ws/jaxrs/ui/cnf/UriPathTemplateCategory.java =================================================================== --- src/org/jboss/tools/ws/jaxrs/ui/cnf/UriPathTemplateCategory.java (revision 38910) +++ src/org/jboss/tools/ws/jaxrs/ui/cnf/UriPathTemplateCategory.java (working copy) @@ -33,7 +33,8 @@ private final Map wrapperCache = new HashMap(); - public UriPathTemplateCategory(UriMappingsContentProvider parent, IProject project) { + public UriPathTemplateCategory(UriMappingsContentProvider parent, + IProject project) { super(); this.parent = parent; this.project = project; @@ -43,10 +44,12 @@ @Override public Object[] getChildren(Object parentElement) { try { - final IJaxrsMetamodel metamodel = JaxrsMetamodelLocator.get(project); + final IJaxrsMetamodel metamodel = JaxrsMetamodelLocator + .get(project); if (metamodel != null) { List endpoints = metamodel.getAllEndpoints(); - Logger.debug("UriPathTemplateCatrogory contains {} endpoints", endpoints.size()); + Logger.debug("UriPathTemplateCatrogory contains {} endpoints", + endpoints.size()); List uriPathTemplateElements = new ArrayList(); // Collections.sort(uriMappings); for (IJaxrsEndpoint endpoint : endpoints) { @@ -54,9 +57,16 @@ // LinkedList resourceMethods = // endpoint.getResourceMethods(); if (element == null) { - Logger.trace("Creating element for endpoint {} ('cause not found in wrapperCache)", endpoint); + Logger.trace( + "Creating element for endpoint {} ('cause not found in wrapperCache)", + endpoint); element = new UriPathTemplateElement(endpoint, this); wrapperCache.put(endpoint, element); + } + // after a clean build, the 'endpoint' reference should be updated + else if (element.getEndpoint() != endpoint) { + element.setEndpoint(endpoint); + } Logger.trace("Adding element for endpoint {}", endpoint); uriPathTemplateElements.add(element); @@ -64,7 +74,8 @@ return uriPathTemplateElements.toArray(); } } catch (CoreException e) { - Logger.error("Failed to retrieve JAX-RS Metamodel in project '" + project.getName() + "'", e); + Logger.error("Failed to retrieve JAX-RS Metamodel in project '" + + project.getName() + "'", e); } return new Object[0]; } @@ -84,12 +95,14 @@ @Override public boolean hasChildren(Object element) { try { - final IJaxrsMetamodel metamodel = JaxrsMetamodelLocator.get(project); + final IJaxrsMetamodel metamodel = JaxrsMetamodelLocator + .get(project); if (metamodel != null) { return (metamodel.getAllEndpoints().size() > 0); } } catch (CoreException e) { - Logger.error("Failed to retrieve JAX-RS Metamodel in project '" + project.getName() + "'", e); + Logger.error("Failed to retrieve JAX-RS Metamodel in project '" + + project.getName() + "'", e); } return false; } Index: src/org/jboss/tools/ws/jaxrs/ui/cnf/UriMappingsContentProvider.java =================================================================== --- src/org/jboss/tools/ws/jaxrs/ui/cnf/UriMappingsContentProvider.java (revision 38910) +++ src/org/jboss/tools/ws/jaxrs/ui/cnf/UriMappingsContentProvider.java (working copy) @@ -102,7 +102,6 @@ monitor.beginTask("Loading JAX-RS metamodel for project '" + project.getName() + "'...", IProgressMonitor.UNKNOWN); monitor.worked(1); - refreshViewerObject(uriPathTemplateCategory); monitor.done(); return Status.OK_STATUS; Index: src/org/jboss/tools/ws/jaxrs/ui/cnf/UriPathTemplateElement.java =================================================================== --- src/org/jboss/tools/ws/jaxrs/ui/cnf/UriPathTemplateElement.java (revision 38910) +++ src/org/jboss/tools/ws/jaxrs/ui/cnf/UriPathTemplateElement.java (working copy) @@ -24,7 +24,7 @@ public class UriPathTemplateElement implements ITreeContentProvider, ILaunchable { - private final IJaxrsEndpoint endpoint; + private IJaxrsEndpoint endpoint; private final UriPathTemplateCategory uriPathTemplateCategory; @@ -79,6 +79,10 @@ return false; } + public void setEndpoint(IJaxrsEndpoint endpoint) { + this.endpoint = endpoint; + } + /** @return the uriMapping */ public IJaxrsEndpoint getEndpoint() { return endpoint; #P org.jboss.tools.ws.jaxrs.core Index: src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/domain/JaxrsResourceMethod.java =================================================================== --- src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/domain/JaxrsResourceMethod.java (revision 38910) +++ src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/domain/JaxrsResourceMethod.java (working copy) @@ -195,11 +195,15 @@ @Override public List validate() throws JavaModelException { + this.hasErrors(false); final List messages = new ArrayList(); messages.addAll(validateMissingPathValueInPathParamAnnotations()); messages.addAll(validateMissingPathParamAnnotations()); messages.addAll(validateParamsWithContextAnnotation()); messages.addAll(validateSingleParamWithoutAnnotation()); + if(messages.size() > 0) { + this.hasErrors(true); + } return messages; }