Skip to content

Commit 769b810

Browse files
committed
Merge pull request #1237 from jacob-meacham/bugfix/1212-deprecated
Fixes #1212: Deprecated annotations are now read from the class hiera…
2 parents 294c34b + d526a13 commit 769b810

File tree

4 files changed

+28
-1
lines changed

4 files changed

+28
-1
lines changed

modules/swagger-jaxrs/src/main/java/io/swagger/jaxrs/Reader.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import com.fasterxml.jackson.databind.JavaType;
2020
import com.fasterxml.jackson.databind.type.TypeFactory;
2121
import com.google.common.collect.Collections2;
22+
2223
import io.swagger.annotations.Api;
2324
import io.swagger.annotations.ApiImplicitParam;
2425
import io.swagger.annotations.ApiImplicitParams;
@@ -61,6 +62,7 @@
6162
import io.swagger.models.properties.MapProperty;
6263
import io.swagger.models.properties.Property;
6364
import io.swagger.models.properties.RefProperty;
65+
6466
import org.apache.commons.lang3.StringUtils;
6567
import org.slf4j.Logger;
6668
import org.slf4j.LoggerFactory;
@@ -71,6 +73,7 @@
7173
import javax.ws.rs.PathParam;
7274
import javax.ws.rs.Produces;
7375
import javax.ws.rs.QueryParam;
76+
7477
import java.lang.annotation.Annotation;
7578
import java.lang.reflect.Constructor;
7679
import java.lang.reflect.Field;
@@ -832,7 +835,7 @@ private Operation parseMethod(Method method, List<Parameter> globalParameters) {
832835
}
833836
}
834837
}
835-
if (method.getAnnotation(Deprecated.class) != null) {
838+
if (getAnnotation(method, Deprecated.class) != null) {
836839
operation.setDeprecated(true);
837840
}
838841

modules/swagger-jaxrs/src/test/scala/ReaderTest.scala

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,13 @@ class ReaderTest extends FlatSpec with Matchers {
194194
swagger.getPaths().get("/testDeprecated").getGet().isDeprecated() should equal(true)
195195
swagger.getPaths().get("/testAllowed").getGet.isDeprecated() should be(null)
196196
}
197+
198+
it should "scan Deprecated annotation from interfaceResource" in {
199+
val reader = new Reader(new Swagger())
200+
val swagger = reader.read(classOf[DescendantResource])
201+
var deprecatedMethod = swagger.getPaths().get("/pet/deprecated/{petId7}").getGet
202+
deprecatedMethod.isDeprecated() should equal(true)
203+
}
197204

198205
it should "scan empty path annotation" in {
199206
val reader = new Reader(new Swagger())

modules/swagger-jaxrs/src/test/scala/resources/DescendantResource.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,4 +58,9 @@ public Response methodFromInterface(@ApiParam(value = "ID of pet to return") Num
5858
public Response methodFromInterface(@ApiParam(value = "Method to check ArrayIndexOutOfBoundsException") @PathParam("petId6") Number petId, String str) {
5959
return null;
6060
}
61+
62+
@Override
63+
public Response deprecatedMethodFromInterface(Number petId) {
64+
return null;
65+
}
6166
}

modules/swagger-jaxrs/src/test/scala/resources/InterfaceResource.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,4 +32,16 @@ Response methodFromInterface(
3232
@ApiResponse(code = 404, message = "Pet not found")})
3333
Response methodFromInterface(
3434
@ApiParam(value = "Method to check ArrayIndexOutOfBoundsException") @PathParam("petId6") Number petId, String str);
35+
36+
@GET
37+
@Path("/deprecated/{petId7}")
38+
@ApiOperation(value = "Find pet by ID",
39+
notes = "Returns a single pet",
40+
response = String.class
41+
)
42+
@ApiResponses(value = {@ApiResponse(code = 400, message = "Invalid ID supplied"),
43+
@ApiResponse(code = 404, message = "Pet not found")})
44+
@Deprecated
45+
Response deprecatedMethodFromInterface(
46+
@ApiParam(value = "ID of pet to return") @PathParam("petId7") Number petId);
3547
}

0 commit comments

Comments
 (0)