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 2018/04/03 14:35:24 UTC
[cxf] branch master updated: CXF-7634: Enrich support for Swagger
Core 2.0 (OpenApi Spec 3.0). Adding OSGi support and samples
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 82fc4f0 CXF-7634: Enrich support for Swagger Core 2.0 (OpenApi Spec 3.0). Adding OSGi support and samples
82fc4f0 is described below
commit 82fc4f0d4a28491ba66db875438be336df0b06e9
Author: reta <dr...@gmail.com>
AuthorDate: Wed Mar 14 22:03:47 2018 -0400
CXF-7634: Enrich support for Swagger Core 2.0 (OpenApi Spec 3.0). Adding OSGi support and samples
---
.../jax_rs/description_openapi_v3_osgi/README.txt | 81 +++++++++++
.../jax_rs/description_openapi_v3_osgi/pom.xml | 90 ++++++++++++
.../demo/jaxrs/swagger/server/ApiOriginFilter.java | 45 ++++++
.../main/java/demo/jaxrs/swagger/server/Item.java | 49 +++++++
.../java/demo/jaxrs/swagger/server/Sample.java | 161 +++++++++++++++++++++
.../main/resources/OSGI-INF/blueprint/context.xml | 65 +++++++++
distribution/src/main/release/samples/pom.xml | 1 +
.../karaf/features/src/main/resources/features.xml | 17 +++
parent/pom.xml | 4 +-
9 files changed, 511 insertions(+), 2 deletions(-)
diff --git a/distribution/src/main/release/samples/jax_rs/description_openapi_v3_osgi/README.txt b/distribution/src/main/release/samples/jax_rs/description_openapi_v3_osgi/README.txt
new file mode 100644
index 0000000..23ae398
--- /dev/null
+++ b/distribution/src/main/release/samples/jax_rs/description_openapi_v3_osgi/README.txt
@@ -0,0 +1,81 @@
+JAX-RS Swagger2Feature Demo for OSGi using Blueprint
+=================
+
+The demo shows a basic usage of Open API 3.0 documentation with REST based Web Services
+using JAX-RS 2.0 (JSR-339). In this demo, the OpenApiFeature is configured using Blueprint.
+
+Building and running the demo
+---------------------------------------
+(Note this demo currently uses the snapshot version of some components)
+
+From the base directory of this sample (i.e., where this README file is
+located), the Maven pom.xml file can be used to build and run the demo.
+
+
+Using either UNIX or Windows:
+
+ mvn install
+
+Starting Karaf (refer to http://karaf.apache.org/manual/latest/quick-start.html)
+
+ bin/karaf
+
+
+ __ __ ____
+ / //_/____ __________ _/ __/
+ / ,< / __ `/ ___/ __ `/ /_
+ / /| |/ /_/ / / / /_/ / __/
+ /_/ |_|\__,_/_/ \__,_/_/
+
+ Apache Karaf (4.1.5)
+
+ Hit '<tab>' for a list of available commands
+ and '[cmd] --help' for help on a specific command.
+ Hit '<ctrl-d>' or type 'system:shutdown' or 'logout' to shutdown Karaf.
+
+
+In order to install CXF's features, you need to add the CXF's features repo using
+
+ feature:repo-add cxf 3.n.m
+
+ where 3.n.m corresponds to a valid CXF version number (e.g., 3.2.5).
+
+Install CXF's cxf-rs-description-openapi-v3 feature that installs all the required bundles
+for this demo bundle.
+
+ feature:install cxf-rs-description-openapi-v3
+
+Install this demo bundle (using the appropriate bundle version number)
+
+ install -s mvn:org.apache.cxf.samples/jax_rs_description_openapi_v3_osgi/3.n.m
+
+You can verify if the CXF JAX-RS OpenApi 3.0 Blueprint Demo is installed and started.
+
+ karaf@root()> list
+ START LEVEL 100 , List Threshold: 50
+ ID | State | Lvl | Version | Name
+ -----------------------------------------------------------------------------
+ 127 | Active | 80 | 3.2.5-SNAPSHOT | CXF JAX-RS OpenApi 3.0 Blueprint Demo
+ karaf@root()>
+
+Now, you will be able to access this CXF JAXRS demo service on your Karaf instance at
+
+ http://localhost:8181/cxf/openApiSample
+
+And its Swagger API documents in either json or yaml are available at
+
+ http://localhost:8181/cxf/openApiSample/openapi.json
+ http://localhost:8181/cxf/openApiSample/openapi.yaml
+
+
+If you do not have your swagger-ui on your local system, you can download
+a copy from its download site.
+
+At the console, type
+
+ wget -N https://github.com/swagger-api/swagger-ui/archive/master.zip
+ unzip master.zip
+
+This will extract the content of the swagger-ui zip file. Using your Browser, open
+the index.html file at swagger-ui-master/dist/. Finally, type in the above swagger
+document URL in the input field and click on "Explore" to view the document.
diff --git a/distribution/src/main/release/samples/jax_rs/description_openapi_v3_osgi/pom.xml b/distribution/src/main/release/samples/jax_rs/description_openapi_v3_osgi/pom.xml
new file mode 100644
index 0000000..34ff1e6
--- /dev/null
+++ b/distribution/src/main/release/samples/jax_rs/description_openapi_v3_osgi/pom.xml
@@ -0,0 +1,90 @@
+<?xml version="1.0"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>jax_rs_description_openapi_v3_osgi</artifactId>
+ <packaging>bundle</packaging>
+ <name>CXF JAX-RS OpenApi 3.0 Blueprint Demo</name>
+ <description>JAX-RS OpenApi 3.0 Basic Demo for OSGi using Blueprint</description>
+ <parent>
+ <groupId>org.apache.cxf.samples</groupId>
+ <artifactId>cxf-samples</artifactId>
+ <version>3.2.5-SNAPSHOT</version>
+ <relativePath>../..</relativePath>
+ </parent>
+
+ <properties>
+ <cxf.version>${project.version}</cxf.version>
+ </properties>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-bundle-plugin</artifactId>
+ <extensions>true</extensions>
+ <configuration>
+ <instructions>
+ <Bundle-SymbolicName>${project.groupId}.${project.artifactId};blueprint.aries.xml-validation:=false</Bundle-SymbolicName>
+ <Import-Package>
+ javax.ws.rs,
+ javax.ws.rs.core,
+ javax.ws.rs.container,
+ org.apache.cxf.jaxrs.provider,
+ org.apache.cxf.jaxrs.openapi,
+ org.osgi.service.blueprint,
+ io.swagger.v3.oas.annotations,
+ io.swagger.v3.oas.models,
+ io.swagger.v3.jaxrs2,
+ com.fasterxml.jackson.jaxrs.base,
+ com.fasterxml.jackson.jaxrs.json,
+ javax.annotation;version="[1.2,2)",
+ *
+ </Import-Package>
+ <Export-Package>
+ </Export-Package>
+ </instructions>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-rt-transports-http</artifactId>
+ <version>3.2.5-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-rt-frontend-jaxrs</artifactId>
+ <version>3.2.5-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-rt-rs-service-description-openapi-v3</artifactId>
+ <version>3.2.5-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>javax.ws.rs</groupId>
+ <artifactId>javax.ws.rs-api</artifactId>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/distribution/src/main/release/samples/jax_rs/description_openapi_v3_osgi/src/main/java/demo/jaxrs/swagger/server/ApiOriginFilter.java b/distribution/src/main/release/samples/jax_rs/description_openapi_v3_osgi/src/main/java/demo/jaxrs/swagger/server/ApiOriginFilter.java
new file mode 100644
index 0000000..b7eda12
--- /dev/null
+++ b/distribution/src/main/release/samples/jax_rs/description_openapi_v3_osgi/src/main/java/demo/jaxrs/swagger/server/ApiOriginFilter.java
@@ -0,0 +1,45 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package demo.jaxrs.swagger.server;
+
+import java.io.IOException;
+
+import javax.ws.rs.container.ContainerRequestContext;
+import javax.ws.rs.container.ContainerResponseContext;
+import javax.ws.rs.container.ContainerResponseFilter;
+import javax.ws.rs.core.MultivaluedMap;
+
+/**
+ * This is a simple optional CORS filter used for this demo to make the resources accessible
+ * from other origins. You may omit using this filter or use CXF's advanced CORS filter
+ * org.apache.cxf.rs.security.cors.CrossOriginResourceSharingFilter
+ * included in cxf-rt-rs-security-cors if you need a more comprehensive accessibility rules.
+ */
+public class ApiOriginFilter implements ContainerResponseFilter {
+
+ @Override
+ public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext)
+ throws IOException {
+ MultivaluedMap<String, Object> headers = responseContext.getHeaders();
+ headers.add("Access-Control-Allow-Origin", "*");
+ headers.add("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT");
+ headers.add("Access-Control-Allow-Headers", "Content-Type");
+ }
+}
diff --git a/distribution/src/main/release/samples/jax_rs/description_openapi_v3_osgi/src/main/java/demo/jaxrs/swagger/server/Item.java b/distribution/src/main/release/samples/jax_rs/description_openapi_v3_osgi/src/main/java/demo/jaxrs/swagger/server/Item.java
new file mode 100644
index 0000000..51b3cab
--- /dev/null
+++ b/distribution/src/main/release/samples/jax_rs/description_openapi_v3_osgi/src/main/java/demo/jaxrs/swagger/server/Item.java
@@ -0,0 +1,49 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package demo.jaxrs.swagger.server;
+
+public class Item {
+ private String name;
+ private String value;
+
+ public Item() {
+ }
+
+ public Item(final String name, final String value) {
+ this.name = name;
+ this.value = value;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+}
diff --git a/distribution/src/main/release/samples/jax_rs/description_openapi_v3_osgi/src/main/java/demo/jaxrs/swagger/server/Sample.java b/distribution/src/main/release/samples/jax_rs/description_openapi_v3_osgi/src/main/java/demo/jaxrs/swagger/server/Sample.java
new file mode 100644
index 0000000..23f34d1
--- /dev/null
+++ b/distribution/src/main/release/samples/jax_rs/description_openapi_v3_osgi/src/main/java/demo/jaxrs/swagger/server/Sample.java
@@ -0,0 +1,161 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package demo.jaxrs.swagger.server;
+
+import java.util.Collections;
+import java.util.Map;
+import java.util.TreeMap;
+
+import javax.ws.rs.Consumes;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.DefaultValue;
+import javax.ws.rs.FormParam;
+import javax.ws.rs.GET;
+import javax.ws.rs.HeaderParam;
+import javax.ws.rs.POST;
+import javax.ws.rs.PUT;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import javax.ws.rs.core.Response.Status;
+import javax.ws.rs.core.UriInfo;
+
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.enums.ParameterIn;
+import io.swagger.v3.oas.annotations.headers.Header;
+import io.swagger.v3.oas.annotations.media.ArraySchema;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
+
+@Path("/sample")
+public class Sample {
+ private Map<String, Item> items;
+
+ public Sample() {
+ items = Collections.synchronizedMap(new TreeMap<String, Item>(String.CASE_INSENSITIVE_ORDER));
+ items.put("Item 1", new Item("Item 1", "Value 1"));
+ items.put("Item 2", new Item("Item 2", "Value 2"));
+ }
+
+ @Produces({ MediaType.APPLICATION_JSON })
+ @GET
+ @Operation(
+ summary = "Get all items",
+ description = "Get operation with Response and @Default value",
+ responses = {
+ @ApiResponse(
+ content = @Content(array = @ArraySchema(schema = @Schema(implementation = Item.class))),
+ responseCode = "200"
+ )
+ }
+ )
+ public Response getItems(@Parameter(required = true) @QueryParam("page") @DefaultValue("1") int page) {
+ return Response.ok(items.values()).build();
+ }
+
+ @Produces({ MediaType.APPLICATION_JSON })
+ @Path("/{name}")
+ @GET
+ @Operation(
+ summary = "Get item by name",
+ description = "Get operation with type and headers",
+ responses = {
+ @ApiResponse(content = @Content(schema = @Schema(implementation = Item.class)), responseCode = "200"),
+ @ApiResponse(responseCode = "404")
+ }
+ )
+ public Response getItem(
+ @Parameter(required = true) @HeaderParam("Accept-Language") final String language,
+ @Parameter(required = true) @PathParam("name") String name) {
+ return items.containsKey(name)
+ ? Response.ok().entity(items.get(name)).build()
+ : Response.status(Status.NOT_FOUND).build();
+ }
+
+ @Consumes({ MediaType.APPLICATION_JSON })
+ @POST
+ @Operation(
+ summary = "Create new item",
+ description = "Post operation with entity in a body",
+ responses = {
+ @ApiResponse(
+ content = @Content(
+ schema = @Schema(implementation = Item.class),
+ mediaType = MediaType.APPLICATION_JSON
+ ),
+ headers = @Header(name = "Location"),
+ responseCode = "201"
+ )
+ }
+ )
+ public Response createItem(
+ @Context final UriInfo uriInfo,
+ @Parameter(required = true) final Item item) {
+ items.put(item.getName(), item);
+ return Response
+ .created(uriInfo.getBaseUriBuilder().path(item.getName()).build())
+ .entity(item).build();
+ }
+
+ @Produces({ MediaType.APPLICATION_JSON })
+ @Path("/{name}")
+ @PUT
+ @Operation(
+ summary = "Update an existing new item",
+ description = "Put operation with form parameter",
+ responses = {
+ @ApiResponse(
+ content = @Content(schema = @Schema(implementation = Item.class)),
+ responseCode = "200"
+ )
+ }
+ )
+ public Item updateItem(
+ @Parameter(required = true) @PathParam("name") String name,
+ @Parameter(required = true) @FormParam("value") String value) {
+ Item item = new Item(name, value);
+ items.put(name, item);
+ return item;
+ }
+
+ @Path("/{name}")
+ @DELETE
+ @Operation(
+ summary = "Delete an existing new item",
+ description = "Delete operation with implicit header",
+ responses = @ApiResponse(responseCode = "204")
+ )
+ @Parameter(
+ name = "Accept-Language",
+ description = "language",
+ required = true,
+ schema = @Schema(implementation = String.class),
+ in = ParameterIn.HEADER
+ )
+ public void delete(@Parameter(required = true) @PathParam("name") String name) {
+ items.remove(name);
+ }
+}
diff --git a/distribution/src/main/release/samples/jax_rs/description_openapi_v3_osgi/src/main/resources/OSGI-INF/blueprint/context.xml b/distribution/src/main/release/samples/jax_rs/description_openapi_v3_osgi/src/main/resources/OSGI-INF/blueprint/context.xml
new file mode 100644
index 0000000..f5e7b3d
--- /dev/null
+++ b/distribution/src/main/release/samples/jax_rs/description_openapi_v3_osgi/src/main/resources/OSGI-INF/blueprint/context.xml
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<!-- START SNIPPET: blueprint -->
+<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:cxf="http://cxf.apache.org/blueprint/core"
+ xmlns:jaxrs="http://cxf.apache.org/blueprint/jaxrs"
+
+ xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd
+ http://cxf.apache.org/blueprint/core http://cxf.apache.org/schemas/blueprint/core.xsd
+ http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/blueprint/jaxrs.xsd">
+
+
+
+ <!-- JAXRS providers -->
+ <bean id="jsonProvider" class="com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider" />
+ <bean id="multipartProvider" class="org.apache.cxf.jaxrs.provider.MultipartProvider" />
+ <bean id="originFilter" class="demo.jaxrs.swagger.server.ApiOriginFilter" />
+
+ <!-- Application resources -->
+ <bean id="sampleResource" class="demo.jaxrs.swagger.server.Sample" />
+
+ <!-- CXF OpenApiFeature -->
+ <bean id="openApiFeature" class="org.apache.cxf.jaxrs.openapi.OpenApiFeature">
+ </bean>
+
+ <cxf:bus>
+ <cxf:features>
+ <cxf:logging />
+ </cxf:features>
+ </cxf:bus>
+
+ <jaxrs:server id="sampleServer" address="/openApiSample">
+ <jaxrs:serviceBeans>
+ <ref component-id="sampleResource" />
+ </jaxrs:serviceBeans>
+ <jaxrs:providers>
+ <ref component-id="jsonProvider" />
+ <ref component-id="multipartProvider" />
+ <ref component-id="originFilter" />
+ </jaxrs:providers>
+ <jaxrs:features>
+ <ref component-id="openApiFeature" />
+ </jaxrs:features>
+ </jaxrs:server>
+
+</blueprint>
+<!-- END SNIPPET: blueprint -->
diff --git a/distribution/src/main/release/samples/pom.xml b/distribution/src/main/release/samples/pom.xml
index 2730f9d..c1a0011e 100644
--- a/distribution/src/main/release/samples/pom.xml
+++ b/distribution/src/main/release/samples/pom.xml
@@ -136,6 +136,7 @@
<module>jax_rs/tracing_opentracing_osgi</module>
<module>jax_rs/description_openapi_v3</module>
<module>jax_rs/sse_osgi</module>
+ <module>jax_rs/description_openapi_v3_osgi</module>
</modules>
<dependencyManagement>
<dependencies>
diff --git a/osgi/karaf/features/src/main/resources/features.xml b/osgi/karaf/features/src/main/resources/features.xml
index 4935ed5..98056ff 100644
--- a/osgi/karaf/features/src/main/resources/features.xml
+++ b/osgi/karaf/features/src/main/resources/features.xml
@@ -320,6 +320,23 @@
<bundle start-level="35" dependency="true">mvn:io.swagger/swagger-core/${cxf.swagger2.version}</bundle>
<bundle start-level="35" dependency="true">mvn:io.swagger/swagger-jaxrs/${cxf.swagger2.version}</bundle>
</feature>
+ <feature name="cxf-rs-description-openapi-v3" version="${project.version}">
+ <feature version="${project.version}">cxf-jaxrs</feature>
+ <feature version="${project.version}">cxf-jackson</feature>
+ <bundle start-level="35">mvn:org.apache.cxf/cxf-rt-rs-service-description-swagger-ui/${project.version}</bundle>
+ <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-rs-service-description-openapi-v3/${project.version}</bundle>
+ <bundle dependency="true" start-level="35">mvn:${cxf.servlet-api.group}/${cxf.servlet-api.artifact}/${cxf.servlet-api.version}</bundle>
+ <bundle start-level="10" dependency="true">mvn:javax.validation/validation-api/${cxf.validation.api.version}</bundle>
+ <bundle start-level="35" dependency="true">mvn:org.apache.commons/commons-lang3/${cxf.commons-lang3.version}</bundle>
+ <bundle start-level="25" dependency="true">mvn:com.google.guava/guava/${cxf.guava.version}</bundle>
+ <bundle start-level="30" dependency="true">mvn:org.javassist/javassist/${cxf.javassist.version}</bundle>
+ <bundle start-level="30" dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.reflections/${cxf.reflections.bundle.version}</bundle>
+ <bundle start-level="35" dependency="true">mvn:io.swagger.core.v3/swagger-annotations/${cxf.swagger.v3.version}</bundle>
+ <bundle start-level="35" dependency="true">mvn:io.swagger.core.v3/swagger-models/${cxf.swagger.v3.version}</bundle>
+ <bundle start-level="35" dependency="true">mvn:io.swagger.core.v3/swagger-core/${cxf.swagger.v3.version}</bundle>
+ <bundle start-level="35" dependency="true">mvn:io.swagger.core.v3/swagger-integration/${cxf.swagger.v3.version}</bundle>
+ <bundle start-level="35" dependency="true">mvn:io.swagger.core.v3/swagger-jaxrs2/${cxf.swagger.v3.version}</bundle>
+ </feature>
<feature name="cxf-databinding-aegis" version="${project.version}">
<feature version="${project.version}">cxf-wsdl</feature>
<feature version="${project.version}">cxf-bindings-soap</feature>
diff --git a/parent/pom.xml b/parent/pom.xml
index 623a5b8..4273966 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -113,7 +113,7 @@
<cxf.openjpa.version>2.4.2</cxf.openjpa.version>
<cxf.geronimo.transaction.version>3.1.4</cxf.geronimo.transaction.version>
<cxf.jasypt.bundle.version>1.9.0_1</cxf.jasypt.bundle.version>
- <cxf.javassist.version>3.19.0-GA</cxf.javassist.version>
+ <cxf.javassist.version>3.21.0-GA</cxf.javassist.version>
<cxf.javax.ws.rs.version>2.1</cxf.javax.ws.rs.version>
<cxf.jaxb.version>2.2.11</cxf.jaxb.version>
<cxf.jaxb.impl.version>${cxf.jaxb.version}</cxf.jaxb.impl.version>
@@ -143,7 +143,7 @@
<cxf.opensaml.osgi.version.range>[3.1,4)</cxf.opensaml.osgi.version.range>
<cxf.rhino.version>1.7R2</cxf.rhino.version>
<cxf.reactivestreams.version>1.0.1</cxf.reactivestreams.version>
- <cxf.reflections.bundle.version>0.9.10_3</cxf.reflections.bundle.version>
+ <cxf.reflections.bundle.version>0.9.11_2</cxf.reflections.bundle.version>
<cxf.servlet-api.group>javax.servlet</cxf.servlet-api.group>
<cxf.servlet-api.artifact>javax.servlet-api</cxf.servlet-api.artifact>
<cxf.servlet-api.version>3.1.0</cxf.servlet-api.version>
--
To stop receiving notification emails like this one, please contact
reta@apache.org.