Author: xcoulon
Date: 2012-04-23 11:49:16 -0400 (Mon, 23 Apr 2012)
New Revision: 40406
Added:
trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/projects/org.jboss.tools.ws.jaxrs.tests.sampleproject/lib/jboss-servlet-api_3.0_spec-1.0.0.Final.jar
trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/projects/org.jboss.tools.ws.jaxrs.tests.sampleproject/src/main/java/org/jboss/tools/ws/jaxrs/sample/services/BarResource.java
trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/projects/org.jboss.tools.ws.jaxrs.tests.sampleproject/src/main/java/org/jboss/tools/ws/jaxrs/sample/services/BazResource.java
Modified:
trunk/ws/plugins/org.jboss.tools.ws.jaxrs.core/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/builder/JaxrsMetamodelBuilder.java
trunk/ws/plugins/org.jboss.tools.ws.jaxrs.core/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/builder/JaxrsMetamodelChangedProcessor.java
trunk/ws/plugins/org.jboss.tools.ws.jaxrs.core/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/domain/JaxrsJavaElement.java
trunk/ws/plugins/org.jboss.tools.ws.jaxrs.core/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/domain/JaxrsMetamodel.java
trunk/ws/plugins/org.jboss.tools.ws.jaxrs.core/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/domain/JaxrsResource.java
trunk/ws/plugins/org.jboss.tools.ws.jaxrs.core/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/domain/JaxrsResourceMethod.java
trunk/ws/plugins/org.jboss.tools.ws.jaxrs.core/src/org/jboss/tools/ws/jaxrs/core/jdt/JavaAnnotationsVisitor.java
trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/projects/org.jboss.tools.ws.jaxrs.tests.sampleproject/.classpath
trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/src/org/jboss/tools/ws/jaxrs/core/WorkbenchTasks.java
trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/builder/JavaElementChangedProcessorTestCase.java
trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/builder/JaxrsMetamodelBuilderTestCase.java
trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/builder/JaxrsMetamodelChangedProcessorTestCase.java
trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/builder/ResourceChangedProcessorTestCase.java
trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/domain/JaxrsMetamodelTestCase.java
trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/validation/JaxrsMetamodelValidatorTestCase.java
trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/src/org/jboss/tools/ws/jaxrs/core/jdt/JaxrsAnnotationScannerTestCase.java
Log:
Fixed - JBIDE-10886
JAX-RS validation returns false errors when method has multiple pathparams with regexp
https://issues.jboss.org/browse/JBIDE-10886
Modified:
trunk/ws/plugins/org.jboss.tools.ws.jaxrs.core/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/builder/JaxrsMetamodelBuilder.java
===================================================================
---
trunk/ws/plugins/org.jboss.tools.ws.jaxrs.core/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/builder/JaxrsMetamodelBuilder.java 2012-04-23
14:51:36 UTC (rev 40405)
+++
trunk/ws/plugins/org.jboss.tools.ws.jaxrs.core/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/builder/JaxrsMetamodelBuilder.java 2012-04-23
15:49:16 UTC (rev 40406)
@@ -76,8 +76,7 @@
}
logBuild(kind, args, project);
switch (kind) {
- case CLEAN_BUILD:
- case FULL_BUILD:
+ case FULL_BUILD: // also called after a CLEAN_BUILD
case AUTO_BUILD:
case INCREMENTAL_BUILD:
build(kind, project, monitor);
Modified:
trunk/ws/plugins/org.jboss.tools.ws.jaxrs.core/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/builder/JaxrsMetamodelChangedProcessor.java
===================================================================
---
trunk/ws/plugins/org.jboss.tools.ws.jaxrs.core/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/builder/JaxrsMetamodelChangedProcessor.java 2012-04-23
14:51:36 UTC (rev 40405)
+++
trunk/ws/plugins/org.jboss.tools.ws.jaxrs.core/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/builder/JaxrsMetamodelChangedProcessor.java 2012-04-23
15:49:16 UTC (rev 40406)
@@ -47,7 +47,7 @@
public class JaxrsMetamodelChangedProcessor {
public List<JaxrsMetamodelDelta>
processAffectedMetamodels(List<JaxrsMetamodelDelta> affectedMetamodels,
- IProgressMonitor progressMonitor) {
+ IProgressMonitor progressMonitor) throws CoreException {
for (JaxrsMetamodelDelta affectedMetamodel : affectedMetamodels) {
processAffectedMetamodel(affectedMetamodel, progressMonitor);
}
@@ -62,7 +62,7 @@
* @return the given metamodelDelta completed with affected endpoints.
*/
public JaxrsMetamodelDelta processAffectedMetamodel(final JaxrsMetamodelDelta
metamodelDelta,
- IProgressMonitor progressMonitor) {
+ IProgressMonitor progressMonitor) throws CoreException {
final List<JaxrsElementDelta> affectedElements =
metamodelDelta.getAffectedElements();
Collections.sort(affectedElements);
try {
@@ -78,8 +78,6 @@
metamodelDelta.addAffectedEndpoint(affectedEndpoints);
}
}
- } catch (CoreException e) {
- Logger.error("Failed to process JAX-RS element changes", e);
} finally {
Logger.debug("Done processing JAX-RS element change(s).");
}
Modified:
trunk/ws/plugins/org.jboss.tools.ws.jaxrs.core/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/domain/JaxrsJavaElement.java
===================================================================
---
trunk/ws/plugins/org.jboss.tools.ws.jaxrs.core/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/domain/JaxrsJavaElement.java 2012-04-23
14:51:36 UTC (rev 40405)
+++
trunk/ws/plugins/org.jboss.tools.ws.jaxrs.core/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/domain/JaxrsJavaElement.java 2012-04-23
15:49:16 UTC (rev 40406)
@@ -114,21 +114,6 @@
return javaElement != null ? javaElement.getElementName() : "*unknown java
element*";
}
- /**
- * Returns the CompilationUnit (AST3/DOM) of the given java element.
- *
- * @param element
- * the java element
- * @param progressMonitor
- * the progress monitor
- * @return the compilation unit or null
- * @throws JavaModelException
- * in case of underlying exception
- */
- final CompilationUnit getCompilationUnit(final IProgressMonitor progressMonitor) throws
JavaModelException {
- return JdtUtils.parse(javaElement, progressMonitor);
- }
-
public Map<String, Annotation> getAnnotations() {
return annotations;
}
Modified:
trunk/ws/plugins/org.jboss.tools.ws.jaxrs.core/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/domain/JaxrsMetamodel.java
===================================================================
---
trunk/ws/plugins/org.jboss.tools.ws.jaxrs.core/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/domain/JaxrsMetamodel.java 2012-04-23
14:51:36 UTC (rev 40405)
+++
trunk/ws/plugins/org.jboss.tools.ws.jaxrs.core/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/domain/JaxrsMetamodel.java 2012-04-23
15:49:16 UTC (rev 40406)
@@ -23,12 +23,10 @@
import java.util.Map.Entry;
import java.util.Set;
-import org.eclipse.core.resources.IMarker;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.QualifiedName;
-import org.eclipse.jdt.core.ICompilationUnit;
import org.eclipse.jdt.core.IJavaElement;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.IType;
@@ -62,9 +60,6 @@
/** The enclosing JavaProject. */
private final IJavaProject javaProject;
- /** The Service URI. Default is "/" */
- private String serviceUri = "/";
-
/**
* All the subclasses of <code>javax.ws.rs.core.Application</code>, although
there should be only one.
*/
@@ -297,26 +292,7 @@
return Collections.unmodifiableList(new ArrayList<IJaxrsResource>(resources));
}
- public final String getServiceUri() {
- return serviceUri;
- }
-
/**
- * Sets the Base URI for the URI mapping templates.
- *
- * @param uri
- * the serviceUri to set
- */
- public final void setServiceUri(final String uri) {
- // remove trailing "*" character, if present.
- if (uri.endsWith("*")) {
- this.serviceUri = uri.substring(0, uri.length() - 1);
- } else {
- this.serviceUri = uri;
- }
- }
-
- /**
* Returns the JAX-RS ElementKind associated with the given java element.
*
* @param element
@@ -338,50 +314,6 @@
}
/**
- * Report errors from the given markers into the JAX-RS element(s) associated with the
given compiltation unit.
- *
- * @param compilationUnit
- * the compilation unit
- * @param markers
- * the markers
- * @return true if errors were found and reported, false otherwise
- * @throws JavaModelException
- * in case of underlying exception
- */
- public final boolean reportErrors(final ICompilationUnit compilationUnit, final
IMarker[] markers)
- throws JavaModelException {
- boolean hasErrors = false;
- for (IMarker marker : markers) {
- if (marker.getAttribute(IMarker.SEVERITY, 0) != IMarker.SEVERITY_ERROR) {
- continue;
- }
- Logger.debug("Error found: " + marker.getAttribute(IMarker.MESSAGE,
""));
- JaxrsJavaElement<?> element = (JaxrsJavaElement<?>)
find(compilationUnit.getElementAt(marker.getAttribute(
- IMarker.CHAR_START, 0)));
- if (element != null) {
- element.hasErrors(true);
- }
- hasErrors = true;
- }
- return hasErrors;
- }
-
- /**
- * Resets this metamodel for further re-use (ie, before a new 'full/clean'
build). Keeping the same instance of
- * Metamodel in the project's session properties is a convenient thing, especially
on the UI side, where some
- * caching system is use to maintain the state of nodes in the Common Navigator
(framework).
- */
- public void reset() {
- Logger.debug("Reseting the JAX-RS Metamodel fpr project {}",
this.javaProject.getElementName());
- this.applications.clear();
- this.httpMethods.clear();
- this.providers.clear();
- this.resources.clear();
- this.elementsIndex.clear();
- this.endpoints.clear();
- }
-
- /**
* @param annotation
* (GET, POST, etc..)
* @param metamodel
Modified:
trunk/ws/plugins/org.jboss.tools.ws.jaxrs.core/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/domain/JaxrsResource.java
===================================================================
---
trunk/ws/plugins/org.jboss.tools.ws.jaxrs.core/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/domain/JaxrsResource.java 2012-04-23
14:51:36 UTC (rev 40405)
+++
trunk/ws/plugins/org.jboss.tools.ws.jaxrs.core/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/domain/JaxrsResource.java 2012-04-23
15:49:16 UTC (rev 40406)
@@ -122,16 +122,6 @@
return EnumKind.UNDEFINED;
}
- @Override
- public final void hasErrors(final boolean hasErrors) {
- super.hasErrors(hasErrors);
- if (!hasErrors) {
- for (IJaxrsResourceMethod resourceMethod : resourceMethods.values()) {
- resourceMethod.hasErrors(hasErrors);
- }
- }
- }
-
public final String getName() {
return getJavaElement().getElementName();
}
@@ -159,11 +149,6 @@
return null;
}
- public Annotation getConsumesAnnotation() {
- final Annotation consumesAnnotation = getAnnotation(Consumes.class.getName());
- return consumesAnnotation;
- }
-
@Override
public List<String> getProducedMediaTypes() {
final Annotation producesAnnotation = getAnnotation(Produces.class.getName());
@@ -178,10 +163,6 @@
return producesAnnotation;
}
- public final IJaxrsApplication getApplication() {
- return application;
- }
-
@Override
public final List<IJaxrsResourceMethod> getAllMethods() {
return Collections.unmodifiableList(new
ArrayList<IJaxrsResourceMethod>(resourceMethods.values()));
Modified:
trunk/ws/plugins/org.jboss.tools.ws.jaxrs.core/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/domain/JaxrsResourceMethod.java
===================================================================
---
trunk/ws/plugins/org.jboss.tools.ws.jaxrs.core/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/domain/JaxrsResourceMethod.java 2012-04-23
14:51:36 UTC (rev 40405)
+++
trunk/ws/plugins/org.jboss.tools.ws.jaxrs.core/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/domain/JaxrsResourceMethod.java 2012-04-23
15:49:16 UTC (rev 40406)
@@ -476,7 +476,7 @@
@Override
public List<String> getPathParamValueProposals() {
- List<String> proposals = new ArrayList<String>();
+ final List<String> proposals = new ArrayList<String>();
final Annotation methodPathAnnotation = getPathAnnotation();
if (methodPathAnnotation != null) {
final String value = methodPathAnnotation.getValue("value");
@@ -506,7 +506,7 @@
while ((beginIndex = value.indexOf("{", beginIndex + 1)) != -1) {
int semicolonIndex = value.indexOf(":", beginIndex);
int closingCurlyBraketIndex = value.indexOf("}", beginIndex);
- int endIndex = semicolonIndex != -1 ? semicolonIndex
+ int endIndex = (semicolonIndex != -1)? Math.min(semicolonIndex,
closingCurlyBraketIndex)
: closingCurlyBraketIndex;
params.add(value.substring(beginIndex + 1, endIndex).trim());
}
Modified:
trunk/ws/plugins/org.jboss.tools.ws.jaxrs.core/src/org/jboss/tools/ws/jaxrs/core/jdt/JavaAnnotationsVisitor.java
===================================================================
---
trunk/ws/plugins/org.jboss.tools.ws.jaxrs.core/src/org/jboss/tools/ws/jaxrs/core/jdt/JavaAnnotationsVisitor.java 2012-04-23
14:51:36 UTC (rev 40405)
+++
trunk/ws/plugins/org.jboss.tools.ws.jaxrs.core/src/org/jboss/tools/ws/jaxrs/core/jdt/JavaAnnotationsVisitor.java 2012-04-23
15:49:16 UTC (rev 40406)
@@ -20,6 +20,7 @@
import org.eclipse.jdt.core.IJavaElement;
import org.eclipse.jdt.core.IMember;
import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.jdt.core.dom.ASTNode;
import org.eclipse.jdt.core.dom.ASTVisitor;
import org.eclipse.jdt.core.dom.AnnotationTypeDeclaration;
import org.eclipse.jdt.core.dom.FieldDeclaration;
@@ -32,8 +33,7 @@
import org.eclipse.jface.text.TypedRegion;
/**
- * A visitor for a single annotation on a java member (can be a method or a
- * type).
+ * A visitor for a single annotation on a java member (can be a method or a type).
*
* @author xcoulon
*/
@@ -45,6 +45,12 @@
/** the annotated member type. */
private final int memberType;
+ /** the annotated member start position, to distinguish between overloaded methods. */
+ private final int memberStartPosition;
+
+ /** the annotated member end position, to distinguish between overloaded methods. */
+ private final int memberEndPosition;
+
/** the name of the annotation. */
private final List<String> annotationNames = new ArrayList<String>();
@@ -52,8 +58,7 @@
private final List<Annotation> annotations = new ArrayList<Annotation>();
/**
- * Full Constructor to resolve a single annotation from its fully qualified
- * name.
+ * Full Constructor to resolve a single annotation from its fully qualified name.
*
* @param name
* the member name
@@ -61,17 +66,19 @@
* the member type
* @param name
* the annotation name
+ * @throws JavaModelException
*/
- public JavaAnnotationsVisitor(final IMember member, final String annotationName) {
+ public JavaAnnotationsVisitor(final IMember member, final String annotationName) throws
JavaModelException {
super();
this.memberName = member.getElementName();
this.memberType = member.getElementType();
+ this.memberStartPosition = member.getSourceRange().getOffset();
+ this.memberEndPosition = member.getSourceRange().getOffset() +
member.getSourceRange().getLength();
this.annotationNames.add(annotationName);
}
/**
- * Full Constructor to resolve a multiple annotations from their fully
- * qualified name.
+ * Full Constructor to resolve a multiple annotations from their fully qualified name.
*
* @param name
* the member name
@@ -79,11 +86,14 @@
* the member type
* @param name
* the annotation name
+ * @throws JavaModelException
*/
- public JavaAnnotationsVisitor(final IMember member, final List<String>
annotationNames) {
+ public JavaAnnotationsVisitor(final IMember member, final List<String>
annotationNames) throws JavaModelException {
super();
this.memberName = member.getElementName();
this.memberType = member.getElementType();
+ this.memberStartPosition = member.getSourceRange().getOffset();
+ this.memberEndPosition = member.getSourceRange().getOffset() +
member.getSourceRange().getLength();
this.annotationNames.addAll(annotationNames);
}
@@ -94,7 +104,8 @@
*/
@Override
public final boolean visit(final AnnotationTypeDeclaration node) {
- if (memberType == IJavaElement.TYPE &&
node.getName().getFullyQualifiedName().equals(memberName)) {
+ if (memberType == IJavaElement.TYPE &&
node.getName().getFullyQualifiedName().equals(memberName)
+ && matchesLocation(node)) {
visitExtendedModifiers((List<?>)
node.getStructuralProperty(AnnotationTypeDeclaration.MODIFIERS2_PROPERTY));
return false;
}
@@ -104,12 +115,12 @@
/**
* {@inheritDoc}
*
- * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
- * TypeDeclaration)
+ * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
TypeDeclaration)
*/
@Override
public final boolean visit(final TypeDeclaration node) {
- if (memberType == IJavaElement.TYPE &&
node.getName().getFullyQualifiedName().equals(memberName)) {
+ if (memberType == IJavaElement.TYPE &&
node.getName().getFullyQualifiedName().equals(memberName)
+ && matchesLocation(node)) {
visitExtendedModifiers((List<?>)
node.getStructuralProperty(TypeDeclaration.MODIFIERS2_PROPERTY));
return false;
}
@@ -119,12 +130,12 @@
/**
* {@inheritDoc}
*
- * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
- * MethodDeclaration)
+ * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
MethodDeclaration)
*/
@Override
public final boolean visit(final MethodDeclaration node) {
- if (memberType == IJavaElement.METHOD &&
node.getName().getFullyQualifiedName().equals(memberName)) {
+ if (memberType == IJavaElement.METHOD &&
node.getName().getFullyQualifiedName().equals(memberName)
+ && matchesLocation(node)) {
visitExtendedModifiers((List<?>)
node.getStructuralProperty(MethodDeclaration.MODIFIERS2_PROPERTY));
return false;
}
@@ -134,14 +145,13 @@
/**
* {@inheritDoc}
*
- * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
- * MethodDeclaration)
+ * @see org.eclipse.jdt.core.dom.ASTVisitor#visit(org.eclipse.jdt.core.dom.
MethodDeclaration)
*/
@Override
public final boolean visit(final FieldDeclaration node) {
if (memberType == IJavaElement.FIELD) {
VariableDeclarationFragment fragment = (VariableDeclarationFragment)
(node.fragments().get(0));
- if (fragment.getName().toString().equals(memberName)) {
+ if (fragment.getName().toString().equals(memberName) && matchesLocation(node))
{
visitExtendedModifiers((List<?>)
node.getStructuralProperty(FieldDeclaration.MODIFIERS2_PROPERTY));
return false;
}
@@ -150,6 +160,17 @@
}
/**
+ * Checks if the given node matches the expected member location by comparing start and
end positions.
+ *
+ * @param node
+ * @return
+ */
+ private boolean matchesLocation(final ASTNode node) {
+ return node.getStartPosition() >= this.memberStartPosition
+ && (node.getStartPosition() + node.getLength()) <=
this.memberEndPosition;
+ }
+
+ /**
* Visits the modifiers.
*
* @param modifiers
@@ -179,9 +200,8 @@
}
/**
- * Returns the Annotation element matching the annotation name given in the
- * visitor constructor. This method should only be called when the
- * constructor with a single annotation name was used.
+ * Returns the Annotation element matching the annotation name given in the visitor
constructor. This method should
+ * only be called when the constructor with a single annotation name was used.
*
* @return the annotation found on the target java element
* @throws JavaModelException
@@ -196,10 +216,9 @@
}
/**
- * Returns the Annotation elements matching the annotations name given in
- * the visitor constructor. The matching annotations are indexed by their
- * associated Java type's fully qualified names. This method should only be
- * called when the constructor with multiple annotation names was used.
+ * Returns the Annotation elements matching the annotations name given in the visitor
constructor. The matching
+ * annotations are indexed by their associated Java type's fully qualified names.
This method should only be called
+ * when the constructor with multiple annotation names was used.
*
* @return the annotation found on the target java element
* @throws JavaModelException
Modified:
trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/projects/org.jboss.tools.ws.jaxrs.tests.sampleproject/.classpath
===================================================================
---
trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/projects/org.jboss.tools.ws.jaxrs.tests.sampleproject/.classpath 2012-04-23
14:51:36 UTC (rev 40405)
+++
trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/projects/org.jboss.tools.ws.jaxrs.tests.sampleproject/.classpath 2012-04-23
15:49:16 UTC (rev 40406)
@@ -11,6 +11,7 @@
</attributes>
</classpathentry>
<classpathentry kind="lib"
path="lib/persistence-api-1.0.jar"/>
+ <classpathentry kind="lib"
path="lib/jboss-servlet-api_3.0_spec-1.0.0.Final.jar"/>
<classpathentry kind="lib"
path="lib/jaxrs-api-2.0.1.GA.jar"/>
<classpathentry kind="lib"
path="lib/resteasy-jaxrs-2.0.1.GA.jar"/>
<classpathentry kind="lib"
path="lib/resteasy-jaxb-provider-2.0.1.GA.jar"/>
Added:
trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/projects/org.jboss.tools.ws.jaxrs.tests.sampleproject/lib/jboss-servlet-api_3.0_spec-1.0.0.Final.jar
===================================================================
(Binary files differ)
Property changes on:
trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/projects/org.jboss.tools.ws.jaxrs.tests.sampleproject/lib/jboss-servlet-api_3.0_spec-1.0.0.Final.jar
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/projects/org.jboss.tools.ws.jaxrs.tests.sampleproject/src/main/java/org/jboss/tools/ws/jaxrs/sample/services/BarResource.java
===================================================================
---
trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/projects/org.jboss.tools.ws.jaxrs.tests.sampleproject/src/main/java/org/jboss/tools/ws/jaxrs/sample/services/BarResource.java
(rev 0)
+++
trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/projects/org.jboss.tools.ws.jaxrs.tests.sampleproject/src/main/java/org/jboss/tools/ws/jaxrs/sample/services/BarResource.java 2012-04-23
15:49:16 UTC (rev 40406)
@@ -0,0 +1,27 @@
+package org.bytesparadise.pastebin.service;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.ws.rs.PUT;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.Response;
+
+@Path("/foo/bar/{param1}")
+public class BarResource {
+
+ @PUT
+ @Path("{param2}")
+ public Response update1(@Context HttpServletRequest requestContext,
+ String bar, @PathParam("{param1}") String param1,
@PathParam("{param2}") String param2) throws Exception {
+ return null;
+ }
+
+ @PUT
+ @Path("{param2}")
+ public Response update2(@Context HttpServletRequest requestContext,
+ String bar, @PathParam("{param2}") String param2) throws Exception {
+ return null;
+ }
+
+}
Property changes on:
trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/projects/org.jboss.tools.ws.jaxrs.tests.sampleproject/src/main/java/org/jboss/tools/ws/jaxrs/sample/services/BarResource.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/projects/org.jboss.tools.ws.jaxrs.tests.sampleproject/src/main/java/org/jboss/tools/ws/jaxrs/sample/services/BazResource.java
===================================================================
---
trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/projects/org.jboss.tools.ws.jaxrs.tests.sampleproject/src/main/java/org/jboss/tools/ws/jaxrs/sample/services/BazResource.java
(rev 0)
+++
trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/projects/org.jboss.tools.ws.jaxrs.tests.sampleproject/src/main/java/org/jboss/tools/ws/jaxrs/sample/services/BazResource.java 2012-04-23
15:49:16 UTC (rev 40406)
@@ -0,0 +1,37 @@
+package org.bytesparadise.pastebin.service;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.ws.rs.PUT;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.Response;
+
+@Path("/foo/baz")
+public class BazResource {
+
+ @GET
+ @Path("/{id}")
+ public Response getContent(@PathParam("id") int id) {
+ return null;
+ }
+
+ @GET
+ @Path("/user/{id}/{format:(/format/[^/]+?)?}/{encoding:(/encoding/[^/]+?)?}")
+ public Response getContent(@PathParam("id") int id,
+ @PathParam("format") String format,
+ @PathParam("encoding") String encoding,
+ @QueryParam("start") int start) {
+ return null;
+ }
+
+ @GET
+ @Path("/user2/{id}/{format:(/format/[^/]+?)?}/{encoding:(/encoding/[^/]+?)?}")
+ public Response getContent2(@PathParam("id") int id,
+ @PathParam("format") String format,
+ @PathParam("encoding") String encoding,
+ @QueryParam("start") int start) {
+ return null;
+ }
+
+}
Property changes on:
trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/projects/org.jboss.tools.ws.jaxrs.tests.sampleproject/src/main/java/org/jboss/tools/ws/jaxrs/sample/services/BazResource.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified:
trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/src/org/jboss/tools/ws/jaxrs/core/WorkbenchTasks.java
===================================================================
---
trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/src/org/jboss/tools/ws/jaxrs/core/WorkbenchTasks.java 2012-04-23
14:51:36 UTC (rev 40405)
+++
trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/src/org/jboss/tools/ws/jaxrs/core/WorkbenchTasks.java 2012-04-23
15:49:16 UTC (rev 40406)
@@ -172,7 +172,7 @@
throws CoreException, OperationCanceledException, InterruptedException {
project.refreshLocal(IResource.DEPTH_INFINITE, progressMonitor);
project.build(buildKind, progressMonitor);
- Job.getJobManager().join(ResourcesPlugin.FAMILY_AUTO_BUILD, null);
+ Job.getJobManager().join(ResourcesPlugin.FAMILY_MANUAL_BUILD, null);
}
public static IPackageFragmentRoot addClasspathEntry(IJavaProject javaProject, String
name,
Modified:
trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/builder/JavaElementChangedProcessorTestCase.java
===================================================================
---
trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/builder/JavaElementChangedProcessorTestCase.java 2012-04-23
14:51:36 UTC (rev 40405)
+++
trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/builder/JavaElementChangedProcessorTestCase.java 2012-04-23
15:49:16 UTC (rev 40406)
@@ -194,9 +194,9 @@
final JavaElementDelta event = createEvent(sourceFolder, ADDED);
final List<JaxrsElementDelta> impacts = processEvent(event, progressMonitor);
// verifications
- // 1 Application + 1 HttpMethod + 3 RootResources + 2 Subresources + all their methods
and fields (total of 16)..
- assertThat(impacts.size(), equalTo(23));
- assertThat(metamodel.getElements(javaProject).size(), equalTo(27)); // 4 previous
HttpMethods + 23 added items
+ // 1 Application + 1 HttpMethod + 6 RootResources + 2 Subresources + all their methods
and fields (total of 16)..
+ assertThat(impacts.size(), equalTo(30));
+ assertThat(metamodel.getElements(javaProject).size(), equalTo(34)); // 4 previous
HttpMethods + 29 added items
assertThat(impacts, everyItem(Matchers.<JaxrsElementDelta>
hasProperty("deltaKind", equalTo(ADDED))));
}
Modified:
trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/builder/JaxrsMetamodelBuilderTestCase.java
===================================================================
---
trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/builder/JaxrsMetamodelBuilderTestCase.java 2012-04-23
14:51:36 UTC (rev 40405)
+++
trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/builder/JaxrsMetamodelBuilderTestCase.java 2012-04-23
15:49:16 UTC (rev 40406)
@@ -11,8 +11,10 @@
package org.jboss.tools.ws.jaxrs.core.internal.metamodel.builder;
import static org.hamcrest.Matchers.equalTo;
+import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.notNullValue;
import static org.hamcrest.Matchers.nullValue;
+import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertThat;
import org.eclipse.core.resources.IncrementalProjectBuilder;
@@ -23,6 +25,7 @@
import org.jboss.tools.ws.jaxrs.core.JBossJaxrsCorePlugin;
import org.jboss.tools.ws.jaxrs.core.WorkbenchTasks;
import org.jboss.tools.ws.jaxrs.core.WorkbenchUtils;
+import org.jboss.tools.ws.jaxrs.core.configuration.ProjectBuilderUtils;
import org.jboss.tools.ws.jaxrs.core.configuration.ProjectNatureUtils;
import org.jboss.tools.ws.jaxrs.core.internal.metamodel.domain.JaxrsMetamodel;
import org.jboss.tools.ws.jaxrs.core.metamodel.IJaxrsMetamodel;
@@ -48,7 +51,7 @@
}
@Test
- public void shouldFullBuildProjectWithExistingMetamodel() throws CoreException,
OperationCanceledException,
+ public void shouldFullBuildJaxrsProjectWithExistingMetamodel() throws CoreException,
OperationCanceledException,
InterruptedException {
// pre-conditions
if (JaxrsMetamodelLocator.get(javaProject) == null) {
@@ -56,16 +59,16 @@
}
assertThat(JaxrsMetamodelLocator.get(javaProject), notNullValue());
// operation
+ WorkbenchTasks.buildProject(project, IncrementalProjectBuilder.CLEAN_BUILD, new
NullProgressMonitor());
WorkbenchTasks.buildProject(project, IncrementalProjectBuilder.FULL_BUILD, new
NullProgressMonitor());
- project.build(IncrementalProjectBuilder.FULL_BUILD, new NullProgressMonitor());
// verification
final IJaxrsMetamodel metamodel = JaxrsMetamodelLocator.get(javaProject);
assertThat(metamodel, notNullValue());
- assertThat(metamodel.getAllEndpoints().size(), equalTo(12));
+ assertThat(metamodel.getAllEndpoints().size(), equalTo(14));
}
@Test
- public void shouldFullBuildProjectWithoutExistingMetamodel() throws CoreException,
OperationCanceledException,
+ public void shouldFullBuildJaxrsProjectWithoutExistingMetamodel() throws CoreException,
OperationCanceledException,
InterruptedException {
// pre-conditions
if (JaxrsMetamodelLocator.get(javaProject) != null) {
@@ -73,50 +76,49 @@
}
assertThat(JaxrsMetamodelLocator.get(javaProject), nullValue());
// operation
+ WorkbenchTasks.buildProject(project, IncrementalProjectBuilder.CLEAN_BUILD, new
NullProgressMonitor());
WorkbenchTasks.buildProject(project, IncrementalProjectBuilder.FULL_BUILD, new
NullProgressMonitor());
- project.build(IncrementalProjectBuilder.FULL_BUILD, new NullProgressMonitor());
// verification
final IJaxrsMetamodel metamodel = JaxrsMetamodelLocator.get(javaProject);
assertThat(metamodel, notNullValue());
- assertThat(metamodel.getAllEndpoints().size(), equalTo(12));
+ assertThat(metamodel.getAllEndpoints().size(), equalTo(14));
}
@Test
- public void shouldCleanBuildProjectWithExistingMetamodel() throws CoreException,
OperationCanceledException,
+ public void shouldNotFullBuildNonJaxrsProject() throws CoreException,
OperationCanceledException,
InterruptedException {
// pre-conditions
- if (JaxrsMetamodelLocator.get(javaProject) == null) {
- JaxrsMetamodel.create(javaProject);
+ if (JaxrsMetamodelLocator.get(javaProject) != null) {
+ JaxrsMetamodelLocator.get(javaProject).remove();
}
- assertThat(JaxrsMetamodelLocator.get(javaProject), notNullValue());
+ assertThat(JaxrsMetamodelLocator.get(javaProject), nullValue());
+ ProjectNatureUtils.uninstallProjectNature(project,
ProjectNatureUtils.JAXRS_NATURE_ID);
+ assertFalse(ProjectNatureUtils.isProjectNatureInstalled(project,
ProjectNatureUtils.JAXRS_NATURE_ID));
// operation
WorkbenchTasks.buildProject(project, IncrementalProjectBuilder.FULL_BUILD, new
NullProgressMonitor());
- project.build(IncrementalProjectBuilder.CLEAN_BUILD, new NullProgressMonitor());
// verification
final IJaxrsMetamodel metamodel = JaxrsMetamodelLocator.get(javaProject);
- assertThat(metamodel, notNullValue());
- assertThat(metamodel.getAllEndpoints().size(), equalTo(12));
+ assertThat(metamodel, nullValue());
}
-
+
@Test
- public void shouldCleanBuildProjectWithoutExistingMetamodel() throws CoreException,
OperationCanceledException,
+ public void shouldNotCleanBuildNonJaxrsProject() throws CoreException,
OperationCanceledException,
InterruptedException {
// pre-conditions
if (JaxrsMetamodelLocator.get(javaProject) != null) {
JaxrsMetamodelLocator.get(javaProject).remove();
}
assertThat(JaxrsMetamodelLocator.get(javaProject), nullValue());
+ ProjectNatureUtils.uninstallProjectNature(project,
ProjectNatureUtils.JAXRS_NATURE_ID);
+ assertFalse(ProjectNatureUtils.isProjectNatureInstalled(project,
ProjectNatureUtils.JAXRS_NATURE_ID));
// operation
- WorkbenchTasks.buildProject(project, IncrementalProjectBuilder.FULL_BUILD, new
NullProgressMonitor());
- project.build(IncrementalProjectBuilder.CLEAN_BUILD, new NullProgressMonitor());
- // verification
+ WorkbenchTasks.buildProject(project, IncrementalProjectBuilder.CLEAN_BUILD, new
NullProgressMonitor());
final IJaxrsMetamodel metamodel = JaxrsMetamodelLocator.get(javaProject);
- assertThat(metamodel, notNullValue());
- assertThat(metamodel.getAllEndpoints().size(), equalTo(12));
+ assertThat(metamodel, nullValue());
}
@Test
- public void shouldIncrementalBuildProjectAfterResourceCreationWithExistingMetamodel()
throws CoreException,
+ public void
shouldIncrementalBuildJaxrsProjectAfterResourceCreationWithExistingMetamodel() throws
CoreException,
OperationCanceledException, InterruptedException {
// pre-conditions: trigger an initial build to have a delta later (when another build
is triggered after the resource creation)
WorkbenchTasks.buildProject(project, IncrementalProjectBuilder.FULL_BUILD, new
NullProgressMonitor());
@@ -128,12 +130,12 @@
// verification
final IJaxrsMetamodel metamodel = JaxrsMetamodelLocator.get(javaProject);
assertThat(metamodel, notNullValue());
- // 12 usual endpoints + 2 newly created
- assertThat(metamodel.getAllEndpoints().size(), equalTo(14));
+ // 13 usual endpoints + 2 newly created
+ assertThat(metamodel.getAllEndpoints().size(), equalTo(16));
}
@Test
- public void shouldIncrementalBuildProjectAfterResourceCreationWithoutExistingMetamodel()
throws CoreException,
+ public void
shouldIncrementalBuildJaxrsProjectAfterResourceCreationWithoutExistingMetamodel() throws
CoreException,
OperationCanceledException, InterruptedException {
// pre-conditions
if (JaxrsMetamodelLocator.get(javaProject) != null) {
@@ -146,7 +148,9 @@
// verification
final IJaxrsMetamodel metamodel = JaxrsMetamodelLocator.get(javaProject);
assertThat(metamodel, notNullValue());
- // 12 usual endpoints + 2 newly created
- assertThat(metamodel.getAllEndpoints().size(), equalTo(14));
+ // 13 usual endpoints + 2 newly created
+ assertThat(metamodel.getAllEndpoints().size(), equalTo(16));
}
+
+
}
Modified:
trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/builder/JaxrsMetamodelChangedProcessorTestCase.java
===================================================================
---
trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/builder/JaxrsMetamodelChangedProcessorTestCase.java 2012-04-23
14:51:36 UTC (rev 40405)
+++
trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/builder/JaxrsMetamodelChangedProcessorTestCase.java 2012-04-23
15:49:16 UTC (rev 40406)
@@ -135,7 +135,7 @@
}
private List<JaxrsEndpointDelta> processEvent(JaxrsElementDelta affectedElement,
- IProgressMonitor progressMonitor) {
+ IProgressMonitor progressMonitor) throws CoreException {
JaxrsMetamodelDelta affectedMetamodel = new JaxrsMetamodelDelta(metamodel, CHANGED);
affectedMetamodel.add(affectedElement);
delegate.processAffectedMetamodel(affectedMetamodel, progressMonitor);
Modified:
trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/builder/ResourceChangedProcessorTestCase.java
===================================================================
---
trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/builder/ResourceChangedProcessorTestCase.java 2012-04-23
14:51:36 UTC (rev 40405)
+++
trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/builder/ResourceChangedProcessorTestCase.java 2012-04-23
15:49:16 UTC (rev 40406)
@@ -196,11 +196,11 @@
assertThat(affectedMetamodel.getDeltaKind(), equalTo(CHANGED));
assertThat(affectedMetamodel.getMetamodel(), equalTo((IJaxrsMetamodel) metamodel));
final List<JaxrsElementDelta> affectedElements =
affectedMetamodel.getAffectedElements();
- // 1 application + 1 HttpMethod + 3 RootResources + 2 Subresources
- assertThat(affectedElements.size(), equalTo(7));
+ // 1 application + 1 HttpMethod + 4 RootResources + 2 Subresources
+ assertThat(affectedElements.size(), equalTo(9));
assertThat(affectedElements, everyItem(Matchers.<JaxrsElementDelta>
hasProperty("deltaKind", equalTo(ADDED))));
// all HttpMethods, Resources, ResourceMethods and ResourceFields
- assertThat(metamodel.getElements(javaProject).size(), equalTo(27));
+ assertThat(metamodel.getElements(javaProject).size(), equalTo(34));
}
@Test
@@ -222,11 +222,11 @@
metamodel = (JaxrsMetamodel) affectedMetamodel.getMetamodel();
assertThat(metamodel, equalTo((IJaxrsMetamodel) metamodel));
final List<JaxrsElementDelta> affectedElements =
affectedMetamodel.getAffectedElements();
- // 1 application + 1 HttpMethod + 3 RootResources + 2 Subresources
- assertThat(affectedElements.size(), equalTo(13));
+ // 1 application + 1 HttpMethod + 4 RootResources + 2 Subresources
+ assertThat(affectedElements.size(), equalTo(15));
assertThat(affectedElements, everyItem(Matchers.<JaxrsElementDelta>
hasProperty("deltaKind", equalTo(ADDED))));
// all Applications, HttpMethods (including @OPTIONS and @HEAD), Resources,
ResourceMethods and ResourceFields
- assertThat(metamodel.getElements(javaProject).size(), equalTo(30));
+ assertThat(metamodel.getElements(javaProject).size(), equalTo(37));
}
/**
@@ -255,9 +255,9 @@
metamodel = (JaxrsMetamodel) affectedMetamodel.getMetamodel();
assertThat(metamodel, notNullValue());
final List<JaxrsElementDelta> affectedElements =
affectedMetamodel.getAffectedElements();
- assertThat(affectedElements.size(), equalTo(13));
+ assertThat(affectedElements.size(), equalTo(15));
// all Applications, HttpMethods (including @OPTIONS and @HEAD), project Resources,
ResourceMethods and ResourceFields
- assertThat(metamodel.getElements(javaProject).size(), equalTo(30));
+ assertThat(metamodel.getElements(javaProject).size(), equalTo(37));
}
Modified:
trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/domain/JaxrsMetamodelTestCase.java
===================================================================
---
trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/domain/JaxrsMetamodelTestCase.java 2012-04-23
14:51:36 UTC (rev 40405)
+++
trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/domain/JaxrsMetamodelTestCase.java 2012-04-23
15:49:16 UTC (rev 40406)
@@ -13,6 +13,7 @@
import static org.hamcrest.Matchers.containsInAnyOrder;
import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.greaterThan;
+import static org.hamcrest.Matchers.hasSize;
import static org.hamcrest.Matchers.notNullValue;
import static org.hamcrest.Matchers.nullValue;
import static org.jboss.tools.ws.jaxrs.core.WorkbenchUtils.getMethod;
@@ -131,7 +132,7 @@
public void shouldAssertResourcesAndMethods() throws CoreException {
// for now, the result excludes the (binary) AsynchronousDispatcher, and
// hence, its (sub)resources
- Assert.assertEquals(5, metamodel.getAllResources().size());
+ Assert.assertEquals(7, metamodel.getAllResources().size());
for (IJaxrsResource jaxrsResource : metamodel.getAllResources()) {
assertThat(((JaxrsResource) jaxrsResource).getJavaElement(), notNullValue());
assertThat(((JaxrsResource) jaxrsResource).getKind(), notNullValue());
@@ -142,7 +143,7 @@
@Test
public void shouldAssertResolvedEndpoints() throws CoreException {
List<IJaxrsEndpoint> endpoints = metamodel.getAllEndpoints();
- Assert.assertEquals("Wrong result", 12, endpoints.size());
+ Assert.assertEquals("Wrong result", 14, endpoints.size());
for (IJaxrsEndpoint endpoint : endpoints) {
Assert.assertFalse("Empty list of resourceMethods",
endpoint.getResourceMethods().isEmpty());
Assert.assertNotNull("No URI Path template",
endpoint.getUriPathTemplate());
@@ -206,6 +207,17 @@
}
@Test
+ public void shouldRetrieveBarResourceMethodProposals() throws CoreException {
+ IType bazType =
getType("org.jboss.tools.ws.jaxrs.sample.services.BazResource", javaProject);
+ IMethod bazMethod = getMethod(bazType, "getContent2");
+ final IJaxrsResourceMethod customerResourceMethod = (IJaxrsResourceMethod)
metamodel.getElement(bazMethod);
+ Assert.assertThat(customerResourceMethod, notNullValue());
+ final List<String> pathParamValueProposals =
customerResourceMethod.getPathParamValueProposals();
+ Assert.assertThat(pathParamValueProposals, hasSize(3));
+ Assert.assertThat(pathParamValueProposals, containsInAnyOrder("id",
"format", "encoding"));
+ }
+
+ @Test
public void shouldSortHttpMethods() {
final List<IJaxrsHttpMethod> httpMethods = new
ArrayList<IJaxrsHttpMethod>(metamodel.getAllHttpMethods());
Collections.sort(httpMethods);
Modified:
trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/validation/JaxrsMetamodelValidatorTestCase.java
===================================================================
---
trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/validation/JaxrsMetamodelValidatorTestCase.java 2012-04-23
14:51:36 UTC (rev 40405)
+++
trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/validation/JaxrsMetamodelValidatorTestCase.java 2012-04-23
15:49:16 UTC (rev 40406)
@@ -61,7 +61,7 @@
}
@Test
- public void shouldValidateResourceMethod() throws CoreException {
+ public void shouldValidateCustomerResourceMethod() throws CoreException {
// preconditions
IType customerJavaType =
WorkbenchUtils.getType("org.jboss.tools.ws.jaxrs.sample.services.CustomerResource",
javaProject);
final JaxrsBaseElement customerResource = metamodel.getElement(customerJavaType);
@@ -72,6 +72,29 @@
}
@Test
+ public void shouldValidateBarResourceMethod() throws CoreException {
+ // preconditions
+ IType barJavaType =
WorkbenchUtils.getType("org.jboss.tools.ws.jaxrs.sample.services.BarResource",
javaProject);
+ final JaxrsBaseElement barResource = metamodel.getElement(barJavaType);
+ // operation
+ final List<ValidatorMessage> validationMessages = barResource.validate();
+ // validation
+ // 3 errors because of curly brackets + 4 warnings because of missing (correct)
parameters
+ assertThat(validationMessages.size(), equalTo(7));
+ }
+
+ @Test
+ public void shouldValidateBazResourceMethod() throws CoreException {
+ // preconditions
+ IType bazJavaType =
WorkbenchUtils.getType("org.jboss.tools.ws.jaxrs.sample.services.BazResource",
javaProject);
+ final JaxrsBaseElement barResource = metamodel.getElement(bazJavaType);
+ // operation
+ final List<ValidatorMessage> validationMessages = barResource.validate();
+ // validation
+ assertThat(validationMessages.size(), equalTo(0));
+ }
+
+ @Test
public void shouldNotValidateResourceMethod() throws CoreException {
// preconditions
IType customerJavaType =
WorkbenchUtils.getType("org.jboss.tools.ws.jaxrs.sample.services.CustomerResource",
javaProject);
Modified:
trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/src/org/jboss/tools/ws/jaxrs/core/jdt/JaxrsAnnotationScannerTestCase.java
===================================================================
---
trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/src/org/jboss/tools/ws/jaxrs/core/jdt/JaxrsAnnotationScannerTestCase.java 2012-04-23
14:51:36 UTC (rev 40405)
+++
trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/src/org/jboss/tools/ws/jaxrs/core/jdt/JaxrsAnnotationScannerTestCase.java 2012-04-23
15:49:16 UTC (rev 40406)
@@ -24,7 +24,7 @@
// operation
final List<IType> resources =
JaxrsAnnotationsScanner.findResourceTypes(javaProject, new NullProgressMonitor());
// verifications
- assertThat(resources.size(), equalTo(5));
+ assertThat(resources.size(), equalTo(7));
}
@Test
@@ -60,7 +60,7 @@
final List<IMethod> resourceMethods =
JaxrsAnnotationsScanner.findResourceMethods(javaProject,new
ArrayList<IJaxrsHttpMethod>(),
new NullProgressMonitor());
// verifications
- assertThat(resourceMethods.size(), equalTo(9)); // just sub resource methods with @Path
annotation
+ assertThat(resourceMethods.size(), equalTo(14)); // just sub resource methods with
@Path annotation
}
@Test