You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by ay...@apache.org on 2015/07/31 17:56:05 UTC

cxf git commit: [CXF-6512] The host property is missing in Swagger2 feature's configuration properties

Repository: cxf
Updated Branches:
  refs/heads/master 3228637a5 -> e95903ef8


[CXF-6512] The host property is missing in Swagger2 feature's configuration properties


Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/e95903ef
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/e95903ef
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/e95903ef

Branch: refs/heads/master
Commit: e95903ef8be9db3b9019023e39ac266eeb99d6c7
Parents: 3228637
Author: Akitoshi Yoshida <ay...@apache.org>
Authored: Fri Jul 31 17:48:12 2015 +0200
Committer: Akitoshi Yoshida <ay...@apache.org>
Committed: Fri Jul 31 17:55:57 2015 +0200

----------------------------------------------------------------------
 .../jaxrs/swagger/AbstractSwaggerFeature.java   |  1 +
 .../cxf/jaxrs/swagger/Swagger2Feature.java      | 16 +++++-
 .../cxf/jaxrs/swagger/Swagger2FeatureTest.java  | 53 ++++++++++++++++++++
 .../cxf/jaxrs/swagger/SwaggerFeatureTest.java   | 45 +++++++++++++++++
 4 files changed, 113 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/e95903ef/rt/rs/description/src/main/java/org/apache/cxf/jaxrs/swagger/AbstractSwaggerFeature.java
----------------------------------------------------------------------
diff --git a/rt/rs/description/src/main/java/org/apache/cxf/jaxrs/swagger/AbstractSwaggerFeature.java b/rt/rs/description/src/main/java/org/apache/cxf/jaxrs/swagger/AbstractSwaggerFeature.java
index 44f5f08..66b65b8 100644
--- a/rt/rs/description/src/main/java/org/apache/cxf/jaxrs/swagger/AbstractSwaggerFeature.java
+++ b/rt/rs/description/src/main/java/org/apache/cxf/jaxrs/swagger/AbstractSwaggerFeature.java
@@ -29,6 +29,7 @@ abstract class AbstractSwaggerFeature extends AbstractFeature {
     protected boolean runAsFilter;
     private String resourcePackage;
     private String version = "1.0.0";
+    // depending on swagger version basePath is set differently
     private String basePath;
     private String title = "Sample REST Application";
     private String description = "The Application";

http://git-wip-us.apache.org/repos/asf/cxf/blob/e95903ef/rt/rs/description/src/main/java/org/apache/cxf/jaxrs/swagger/Swagger2Feature.java
----------------------------------------------------------------------
diff --git a/rt/rs/description/src/main/java/org/apache/cxf/jaxrs/swagger/Swagger2Feature.java b/rt/rs/description/src/main/java/org/apache/cxf/jaxrs/swagger/Swagger2Feature.java
index 279a581..1441b5c 100644
--- a/rt/rs/description/src/main/java/org/apache/cxf/jaxrs/swagger/Swagger2Feature.java
+++ b/rt/rs/description/src/main/java/org/apache/cxf/jaxrs/swagger/Swagger2Feature.java
@@ -42,6 +42,7 @@ import io.swagger.jaxrs.listing.ApiListingResource;
 import io.swagger.jaxrs.listing.SwaggerSerializers;
 
 public class Swagger2Feature extends AbstractSwaggerFeature {
+    private String host;
 
     @Override
     protected void addSwaggerResource(Server server) {
@@ -70,6 +71,7 @@ public class Swagger2Feature extends AbstractSwaggerFeature {
         beanConfig.setResourcePackage(getResourcePackage());
         beanConfig.setVersion(getVersion());
         beanConfig.setBasePath(getBasePath());
+        beanConfig.setHost(getHost());
         beanConfig.setTitle(getTitle());
         beanConfig.setDescription(getDescription());
         beanConfig.setContact(getContact());
@@ -78,13 +80,23 @@ public class Swagger2Feature extends AbstractSwaggerFeature {
         beanConfig.setScan(isScan());
     }
 
+    public String getHost() {
+        return host;
+    }
+    public void setHost(String host) {
+        this.host = host;
+    }
+
     @Override
     protected void setBasePathByAddress(String address) {
         if (!address.startsWith("/")) {
             // get the path part
-            address = URI.create(address).getPath();
+            URI u = URI.create(address); 
+            setBasePath(u.getPath());
+            setHost(u.getPort() < 0 ? u.getHost() : u.getHost() + ":" + u.getPort());
+        } else {
+            setBasePath(address);
         }
-        setBasePath(address);
     }
 
     @PreMatching

http://git-wip-us.apache.org/repos/asf/cxf/blob/e95903ef/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/swagger/Swagger2FeatureTest.java
----------------------------------------------------------------------
diff --git a/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/swagger/Swagger2FeatureTest.java b/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/swagger/Swagger2FeatureTest.java
new file mode 100644
index 0000000..c87b041
--- /dev/null
+++ b/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/swagger/Swagger2FeatureTest.java
@@ -0,0 +1,53 @@
+/**
+ * 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 org.apache.cxf.jaxrs.swagger;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+/**
+ *
+ */
+public class Swagger2FeatureTest extends Assert {
+    @Test
+    public void testSetBasePathByAddress() {
+        Swagger2Feature f = new Swagger2Feature();
+
+        f.setBasePathByAddress("http://localhost:8080/foo");
+        assertEquals("/foo", f.getBasePath());
+        assertEquals("localhost:8080", f.getHost());
+        unsetBasePath(f);
+
+        f.setBasePathByAddress("http://localhost/foo");
+        assertEquals("/foo", f.getBasePath());
+        assertEquals("localhost", f.getHost());
+        unsetBasePath(f);
+
+        f.setBasePathByAddress("/foo");
+        assertEquals("/foo", f.getBasePath());
+        assertNull(f.getHost());
+        unsetBasePath(f);
+    }
+
+    private static void unsetBasePath(Swagger2Feature f) {
+        f.setBasePath(null);
+        f.setHost(null);
+    }
+}

http://git-wip-us.apache.org/repos/asf/cxf/blob/e95903ef/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/swagger/SwaggerFeatureTest.java
----------------------------------------------------------------------
diff --git a/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/swagger/SwaggerFeatureTest.java b/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/swagger/SwaggerFeatureTest.java
new file mode 100644
index 0000000..a1922d5
--- /dev/null
+++ b/rt/rs/description/src/test/java/org/apache/cxf/jaxrs/swagger/SwaggerFeatureTest.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 org.apache.cxf.jaxrs.swagger;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+/**
+ *
+ */
+public class SwaggerFeatureTest extends Assert {
+    @Test
+    public void testSetBasePathByAddress() {
+        SwaggerFeature f = new SwaggerFeature();
+
+        f.setBasePathByAddress("http://localhost:8080/foo");
+        assertEquals("http://localhost:8080/foo", f.getBasePath());
+        unsetBasePath(f);
+
+        f.setBasePathByAddress("/foo");
+        assertEquals("/foo", f.getBasePath());
+        unsetBasePath(f);
+    }
+
+    private static void unsetBasePath(SwaggerFeature f) {
+        f.setBasePath(null);
+    }
+}