Restore Swagger

Restore swagger generation at runtime, + Clamp versioning rework + log
level set differently

Issue-ID: CLAMP-169
Change-Id: Ibf9eedb7028dedc610b36546f57ee5b3095cd20d
Signed-off-by: Determe, Sebastien (sd378r) <sd378r@intl.att.com>
diff --git a/src/test/java/org/onap/clamp/clds/it/HttpsItCase.java b/src/test/java/org/onap/clamp/clds/it/HttpsItCase.java
index dc3a31f..0da267d 100644
--- a/src/test/java/org/onap/clamp/clds/it/HttpsItCase.java
+++ b/src/test/java/org/onap/clamp/clds/it/HttpsItCase.java
@@ -2,31 +2,33 @@
  * ============LICENSE_START=======================================================
  * ONAP CLAMP
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
  *                             reserved.
  * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License"); 
- * you may not use this file except in compliance with the License. 
+ * Licensed 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 
+ *
+ * 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.
  * ============LICENSE_END============================================
  * ===================================================================
- * 
+ *
  */
 
 package org.onap.clamp.clds.it;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
+import java.io.File;
 import java.io.IOException;
 import java.net.HttpURLConnection;
+import java.nio.charset.Charset;
 
 import javax.net.ssl.HostnameVerifier;
 import javax.net.ssl.HttpsURLConnection;
@@ -35,6 +37,7 @@
 import javax.net.ssl.TrustManager;
 import javax.net.ssl.X509TrustManager;
 
+import org.apache.commons.io.FileUtils;
 import org.junit.BeforeClass;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -73,12 +76,12 @@
 
                 @Override
                 public void checkClientTrusted(java.security.cert.X509Certificate[] chain, String authType)
-                        throws java.security.cert.CertificateException {
+                    throws java.security.cert.CertificateException {
                 }
 
                 @Override
                 public void checkServerTrusted(java.security.cert.X509Certificate[] chain, String authType)
-                        throws java.security.cert.CertificateException {
+                    throws java.security.cert.CertificateException {
                 }
 
                 @Override
@@ -87,7 +90,7 @@
                 }
             };
             ctx.init(null, new TrustManager[] {
-                    tm
+                tm
             }, null);
             SSLContext.setDefault(ctx);
         } catch (Exception ex) {
@@ -107,14 +110,32 @@
         });
         template.setRequestFactory(factory);
         ResponseEntity<String> entity = template
-                .getForEntity("http://localhost:" + this.httpPort + "/designer/index.html", String.class);
+            .getForEntity("http://localhost:" + this.httpPort + "/designer/index.html", String.class);
         assertThat(entity.getStatusCode()).isEqualTo(HttpStatus.FOUND);
         ResponseEntity<String> httpsEntity = template
-                .getForEntity("https://localhost:" + this.httpsPort + "/designer/index.html", String.class);
+            .getForEntity("https://localhost:" + this.httpsPort + "/designer/index.html", String.class);
         assertThat(httpsEntity.getStatusCode()).isEqualTo(HttpStatus.OK);
         assertThat(httpsEntity.getBody()).contains("CLDS");
     }
 
+    @Test
+    public void testSwaggerJson() throws Exception {
+        RestTemplate template = new RestTemplate();
+        final MySimpleClientHttpRequestFactory factory = new MySimpleClientHttpRequestFactory(new HostnameVerifier() {
+
+            @Override
+            public boolean verify(final String hostname, final SSLSession session) {
+                return true;
+            }
+        });
+        template.setRequestFactory(factory);
+        ResponseEntity<String> httpsEntity = template
+            .getForEntity("https://localhost:" + this.httpsPort + "/restservices/clds/v1/api-doc", String.class);
+        assertThat(httpsEntity.getStatusCode()).isEqualTo(HttpStatus.OK);
+        assertThat(httpsEntity.getBody()).contains("swagger");
+        FileUtils.writeStringToFile(new File("docs/swagger/swagger.json"), httpsEntity.getBody(),Charset.defaultCharset());
+    }
+
     /**
      * Http Request Factory for ignoring SSL hostname errors. Not for production
      * use!
@@ -129,7 +150,7 @@
 
         @Override
         protected void prepareConnection(final HttpURLConnection connection, final String httpMethod)
-                throws IOException {
+            throws IOException {
             if (connection instanceof HttpsURLConnection) {
                 ((HttpsURLConnection) connection).setHostnameVerifier(this.verifier);
             }
diff --git a/src/test/resources/application.properties b/src/test/resources/application.properties
index 7d6ba51..d9d0f0e 100644
--- a/src/test/resources/application.properties
+++ b/src/test/resources/application.properties
@@ -60,7 +60,7 @@
 ### server.ssl.key-password=mypass

 ### server.http-to-https-redirection.port=8090  <-- The HTTP port

 

-server.contextPath=/

+server.servlet.context-path=/

 #Modified engine-rest applicationpath

 spring.profiles.active=clamp-default,clamp-spring-authentication,clamp-sdc-controller

 

@@ -76,14 +76,16 @@
 

 camel.springboot.consumer-template-cache-size=1000

 camel.springboot.producer-template-cache-size=1000

-camel.springboot.jmx-enabled=false

+# JMX enabled to have Camel Swagger runtime working

+camel.springboot.jmx-enabled=true

 camel.defaultthreadpool.poolsize=10

 camel.defaultthreadpool.maxpoolsize=20

 camel.defaultthreadpool.maxqueuesize=1000

 camel.defaultthreadpool.keepaliveTime=60

 camel.defaultthreadpool.rejectpolicy=CallerRuns

 #camel.springboot.xmlRoutes = false

-camel.springboot.xmlRoutes=classpath:/clds/camel/*.xml

+camel.springboot.xmlRoutes=classpath:/clds/camel/routes/*.xml

+camel.springboot.xmlRests=classpath:/clds/camel/rest/*.xml

 #camel.springboot.typeConversion = false

 

 #clds datasource connection details

diff --git a/src/test/resources/https/https-test.properties b/src/test/resources/https/https-test.properties
index c503b53..853466e 100644
--- a/src/test/resources/https/https-test.properties
+++ b/src/test/resources/https/https-test.properties
@@ -55,9 +55,9 @@
 ### server.ssl.key-password=mypass
 ### server.http-to-https-redirection.port=8090  <-- The HTTP port
 
-server.contextPath=/
+server.servlet.context-path=/
 #Modified engine-rest applicationpath
-spring.profiles.active=clamp-default,clamp-spring-authentication
+spring.profiles.active=clamp-default,clamp-default-user
 
 #clds datasource connection details
 spring.datasource.cldsdb.driverClassName=org.mariadb.jdbc.Driver
@@ -73,3 +73,17 @@
 # Automatically test whether a connection provided is good or not
 spring.datasource.cldsdb.testOnBorrow=true
 spring.datasource.cldsdb.ignoreExceptionOnPreLoad=true
+
+camel.springboot.consumer-template-cache-size=1000
+camel.springboot.producer-template-cache-size=1000
+# JMX enabled to have Camel Swagger runtime working
+camel.springboot.jmx-enabled=true
+camel.defaultthreadpool.poolsize=10
+camel.defaultthreadpool.maxpoolsize=20
+camel.defaultthreadpool.maxqueuesize=1000
+camel.defaultthreadpool.keepaliveTime=60
+camel.defaultthreadpool.rejectpolicy=CallerRuns
+#camel.springboot.xmlRoutes = false
+camel.springboot.xmlRoutes=classpath:/clds/camel/routes/*.xml
+camel.springboot.xmlRests=classpath:/clds/camel/rest/*.xml
+#camel.springboot.typeConversion = false