Fix concureny issues in test code
[vfc/nfvo/driver/vnfm/svnfm.git] / nokiav2 / driver / src / main / java / org / onap / vfc / nfvo / driver / vnfm / svnfm / nokia / util / SystemFunctions.java
index 805be64..51d76ac 100644 (file)
 package org.onap.vfc.nfvo.driver.vnfm.svnfm.nokia.util;
 
 import com.google.common.io.ByteStreams;
-import org.apache.http.impl.client.CloseableHttpClient;
-import org.apache.http.impl.client.HttpClients;
-
 import java.io.InputStream;
 import java.io.PrintStream;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.springframework.boot.SpringApplication;
 
 /**
  * Wrapper class for static method calls to core or core libraries.
@@ -57,7 +57,7 @@ public class SystemFunctions {
             Thread.sleep(millis);
         } catch (InterruptedException e) {
             Thread.currentThread().interrupt();
-            throw new RuntimeException(e);
+            throw new UserInvisibleError("Interrupted while sleeping", e);
         }
     }
 
@@ -68,7 +68,7 @@ public class SystemFunctions {
      * operating system and may be larger.  For example, many
      * operating systems measure time in units of tens of
      * milliseconds.
-     * <p>
+     *
      * <p> See the description of the class <code>Date</code> for
      * a discussion of slight discrepancies that may arise between
      * Unable to load /unittests/missing     * "computer time" and coordinated universal time (UTC).
@@ -92,7 +92,7 @@ public class SystemFunctions {
             InputStream stream = SystemFunctions.class.getClassLoader().getResourceAsStream(url);
             return ByteStreams.toByteArray(stream);
         } catch (Exception e) {
-            throw new RuntimeException("Unable to load " + url, e);
+            throw new UserVisibleError("Unable to load " + url, e);
         }
     }
 
@@ -108,8 +108,9 @@ public class SystemFunctions {
      * variable <code>out</code>, has been redirected to a file or other
      * destination that is typically not continuously monitored.
      */
+    @SuppressWarnings("squid:S106") // (intentional wrapping of system err)
     public PrintStream err() {
-        return System.err; //NO SONAR (intentional wrapping of system err
+        return System.err;
     }
 
     /**
@@ -137,8 +138,9 @@ public class SystemFunctions {
      * @see java.io.PrintStream#println(java.lang.Object)
      * @see java.io.PrintStream#println(java.lang.String)
      */
+    @SuppressWarnings("squid:S106") // (intentional wrapping of system err)
     public PrintStream out() {
-        return System.out; //NO SONAR (intentional wrapping of system out)
+        return System.out;
     }
 
     /**
@@ -159,4 +161,12 @@ public class SystemFunctions {
     public CloseableHttpClient getHttpClient() {
         return HttpClients.createDefault();
     }
-}
+
+    /**
+     * @param clazz the main source of the Spring application
+     * @return a new Spring application
+     */
+    public SpringApplication newSpringApplication(Class clazz) {
+        return new SpringApplication(clazz);
+    }
+}
\ No newline at end of file