You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by se...@apache.org on 2016/09/06 11:10:34 UTC
cxf git commit: [CXF-7040] Correctly identifying a Swagger UI root in
repackaged JAR
Repository: cxf
Updated Branches:
refs/heads/master 9247aad0c -> df243e3d1
[CXF-7040] Correctly identifying a Swagger UI root in repackaged JAR
Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/df243e3d
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/df243e3d
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/df243e3d
Branch: refs/heads/master
Commit: df243e3d17e182ed6d839411ce996429db4d75e6
Parents: 9247aad
Author: Sergey Beryozkin <sb...@gmail.com>
Authored: Tue Sep 6 12:10:17 2016 +0100
Committer: Sergey Beryozkin <sb...@gmail.com>
Committed: Tue Sep 6 12:10:17 2016 +0100
----------------------------------------------------------------------
.../release/samples/jax_rs/spring_boot/README | 2 ++
.../release/samples/jax_rs/spring_boot/pom.xml | 18 ++++++++++++++++++
.../cxf/jaxrs/swagger/SwaggerUiResolver.java | 20 +++++++++++++-------
3 files changed, 33 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cxf/blob/df243e3d/distribution/src/main/release/samples/jax_rs/spring_boot/README
----------------------------------------------------------------------
diff --git a/distribution/src/main/release/samples/jax_rs/spring_boot/README b/distribution/src/main/release/samples/jax_rs/spring_boot/README
index 7fdc9c1..81b4b4d 100644
--- a/distribution/src/main/release/samples/jax_rs/spring_boot/README
+++ b/distribution/src/main/release/samples/jax_rs/spring_boot/README
@@ -7,6 +7,8 @@ The sample uses Maven. It can be built and run from the command line:
----
$ mvn -Pserver
+or
+$ java -jar target/spring-boot-sample-rs-cxf-3.2.0-SNAPSHOT.jar
----
http://localhost:8080/services/helloservice/sayHello/ApacheCxfUser
http://git-wip-us.apache.org/repos/asf/cxf/blob/df243e3d/distribution/src/main/release/samples/jax_rs/spring_boot/pom.xml
----------------------------------------------------------------------
diff --git a/distribution/src/main/release/samples/jax_rs/spring_boot/pom.xml b/distribution/src/main/release/samples/jax_rs/spring_boot/pom.xml
index 764f52f..46e8dcd 100644
--- a/distribution/src/main/release/samples/jax_rs/spring_boot/pom.xml
+++ b/distribution/src/main/release/samples/jax_rs/spring_boot/pom.xml
@@ -32,6 +32,24 @@
<version>${cxf.version}</version>
</dependency>
</dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-maven-plugin</artifactId>
+ <configuration>
+ <mainClass>sample.rs.service.SampleRestApplication</mainClass>
+ </configuration>
+ <executions>
+ <execution>
+ <goals>
+ <goal>repackage</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
<profiles>
<profile>
<id>server</id>
http://git-wip-us.apache.org/repos/asf/cxf/blob/df243e3d/rt/rs/description-swagger/src/main/java/org/apache/cxf/jaxrs/swagger/SwaggerUiResolver.java
----------------------------------------------------------------------
diff --git a/rt/rs/description-swagger/src/main/java/org/apache/cxf/jaxrs/swagger/SwaggerUiResolver.java b/rt/rs/description-swagger/src/main/java/org/apache/cxf/jaxrs/swagger/SwaggerUiResolver.java
index 1df1119..2ac9664 100644
--- a/rt/rs/description-swagger/src/main/java/org/apache/cxf/jaxrs/swagger/SwaggerUiResolver.java
+++ b/rt/rs/description-swagger/src/main/java/org/apache/cxf/jaxrs/swagger/SwaggerUiResolver.java
@@ -44,14 +44,20 @@ public class SwaggerUiResolver {
final String resourcesRootStart = "META-INF/resources/webjars/swagger-ui/";
for (URL url : ((URLClassLoader)cl).getURLs()) {
String urlStr = url.toString();
- if (urlStr.contains("/swagger-ui") && urlStr.toString().endsWith(".jar")) {
- urlStr = urlStr.substring(0, urlStr.length() - 4);
- String version = urlStr.substring(urlStr.lastIndexOf("/swagger-ui") + 12);
- if (swaggerUiVersion != null && !swaggerUiVersion.equals(version)) {
- continue;
+ int swaggerUiIndex = urlStr.lastIndexOf("/swagger-ui-");
+ if (swaggerUiIndex != -1) {
+ boolean urlEndsWithJarSep = urlStr.endsWith(".jar!/");
+ if (urlEndsWithJarSep || urlStr.endsWith(".jar")) {
+ int offset = urlEndsWithJarSep ? 6 : 4;
+ String version = urlStr.substring(swaggerUiIndex + 12, urlStr.length() - offset);
+ if (swaggerUiVersion != null && !swaggerUiVersion.equals(version)) {
+ continue;
+ }
+ if (!urlEndsWithJarSep) {
+ urlStr = "jar:" + urlStr + "!/";
+ }
+ return urlStr + resourcesRootStart + version + "/";
}
- return "jar:" + url.toString() + "!/"
- + resourcesRootStart + version + "/";
}
}