You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by re...@apache.org on 2020/12/07 14:24:48 UTC
[cxf] branch master updated: Update to Swagger Core 2.1.6 (#733)
This is an automated email from the ASF dual-hosted git repository.
reta pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cxf.git
The following commit(s) were added to refs/heads/master by this push:
new 9c17f2f Update to Swagger Core 2.1.6 (#733)
9c17f2f is described below
commit 9c17f2fb90a9929d0dc8e4f090da78547a4e7a02
Author: Andriy Redko <dr...@gmail.com>
AuthorDate: Mon Dec 7 09:24:36 2020 -0500
Update to Swagger Core 2.1.6 (#733)
---
parent/pom.xml | 2 +-
.../apache/cxf/systest/jaxrs/AtomBookStore.java | 3 --
.../apache/cxf/systest/jaxrs/AtomBookStore2.java | 3 --
.../apache/cxf/systest/jaxrs/AtomBookStore3.java | 3 --
.../nonspring/JAXRSNonSpringJaxrsServletTest.java | 47 +++++++++++++++++-----
5 files changed, 39 insertions(+), 19 deletions(-)
diff --git a/parent/pom.xml b/parent/pom.xml
index 0fdd806..ac17f01 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -203,7 +203,7 @@
<cxf.spring.version>5.3.1</cxf.spring.version>
<cxf.stax-ex.version>1.8.3</cxf.stax-ex.version>
<cxf.swagger.ui.version>3.37.0</cxf.swagger.ui.version>
- <cxf.swagger.v3.version>2.1.5</cxf.swagger.v3.version>
+ <cxf.swagger.v3.version>2.1.6</cxf.swagger.v3.version>
<cxf.swagger2.version>1.6.2</cxf.swagger2.version>
<cxf.swagger2.guava.version>27.0-jre</cxf.swagger2.guava.version>
<cxf.tika.version>1.25</cxf.tika.version>
diff --git a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/AtomBookStore.java b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/AtomBookStore.java
index 6fd8ce0..d462c46 100644
--- a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/AtomBookStore.java
+++ b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/AtomBookStore.java
@@ -47,10 +47,7 @@ import org.apache.abdera.model.Feed;
import org.apache.cxf.customer.book.BookNotFoundDetails;
import org.apache.cxf.customer.book.BookNotFoundFault;
-import io.swagger.v3.oas.annotations.Hidden;
-
@Path("/")
-@Hidden /* Excluding from Swagger's scans (Abdera's classes break model introspection */
public class AtomBookStore {
@Context protected UriInfo uField;
diff --git a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/AtomBookStore2.java b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/AtomBookStore2.java
index 2dd7554..bb3587c 100644
--- a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/AtomBookStore2.java
+++ b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/AtomBookStore2.java
@@ -29,10 +29,7 @@ import javax.ws.rs.core.UriInfo;
import org.apache.abdera.model.Feed;
-import io.swagger.v3.oas.annotations.Hidden;
-
@Path("/")
-@Hidden /* Excluding from Swagger's scans (Abdera's classes break model introspection */
public class AtomBookStore2 extends AtomBookStore {
@GET
diff --git a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/AtomBookStore3.java b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/AtomBookStore3.java
index f40d7bc..59df36d 100644
--- a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/AtomBookStore3.java
+++ b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/AtomBookStore3.java
@@ -25,10 +25,7 @@ import javax.ws.rs.Path;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.UriInfo;
-import io.swagger.v3.oas.annotations.Hidden;
-
@Path("/atom")
-@Hidden /* Excluding from Swagger's scans (Abdera's classes break model introspection */
public class AtomBookStore3 extends AtomBookStore {
@Context
diff --git a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/nonspring/JAXRSNonSpringJaxrsServletTest.java b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/nonspring/JAXRSNonSpringJaxrsServletTest.java
index 16a8560..85327a8 100644
--- a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/nonspring/JAXRSNonSpringJaxrsServletTest.java
+++ b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/nonspring/JAXRSNonSpringJaxrsServletTest.java
@@ -19,19 +19,28 @@
package org.apache.cxf.systest.jaxrs.nonspring;
+import java.io.IOException;
+
import javax.ws.rs.core.Response;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
+
import org.apache.cxf.jaxrs.client.WebClient;
import org.apache.cxf.jaxrs.model.AbstractResourceInfo;
import org.apache.cxf.systest.jaxrs.Book;
import org.apache.cxf.testutil.common.AbstractBusClientServerTestBase;
+import io.swagger.v3.core.util.Json;
+
import org.junit.BeforeClass;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
+
/**
* A test for launching the JAX-RS service using CXFNonSpringJaxrsServlet
*/
@@ -65,16 +74,36 @@ public class JAXRSNonSpringJaxrsServletTest extends AbstractBusClientServerTestB
@Test
public void testFeatureOnResourceClassUsingApplication() throws Exception {
- String address = "http://localhost:" + PORT2 + "/bookstore/;JSESSIONID=xxx";
- WebClient wc = WebClient.create(address);
- Book book = wc.get(Book.class);
- assertEquals(124L, book.getId());
- assertEquals("root", book.getName());
+ final JsonSerializer<Object> defaultNullKeySerializer = Json
+ .mapper()
+ .getSerializerProvider()
+ .getDefaultNullKeySerializer();
- // Check OpenAPI feature is working correctly
- wc = WebClient.create("http://localhost:" + PORT2 + "/openapi.json");
- Response openAPIResponse = wc.get();
- assertEquals(200, openAPIResponse.getStatus());
+ try {
+ // Swagger Core v3 does not interpret FormParam("") properly, sets property key as 'null' and fails the
+ // serialization with "Null key for a Map not allowed in JSON (use a converting NullKeySerializer?)"
+ Json.mapper().getSerializerProvider().setNullKeySerializer(new JsonSerializer<Object>() {
+ @Override
+ public void serialize(Object value, JsonGenerator gen, SerializerProvider provider) throws IOException {
+ gen.writeFieldName("");
+ }
+ });
+
+ String address = "http://localhost:" + PORT2 + "/bookstore/;JSESSIONID=xxx";
+ WebClient wc = WebClient.create(address);
+ Book book = wc.get(Book.class);
+ assertEquals(124L, book.getId());
+ assertEquals("root", book.getName());
+
+ // Check OpenAPI feature is working correctly
+ wc = WebClient.create("http://localhost:" + PORT2 + "/openapi.json");
+ Response openAPIResponse = wc.get();
+ assertEquals(200, openAPIResponse.getStatus());
+ } finally {
+ if (defaultNullKeySerializer != null) {
+ Json.mapper().getSerializerProvider().setNullKeySerializer(defaultNullKeySerializer);
+ }
+ }
}
}
\ No newline at end of file