aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sdnr/wt/apigateway/feature/pom.xml2
-rwxr-xr-xsdnr/wt/apigateway/installer/pom.xml43
-rwxr-xr-xsdnr/wt/apigateway/pom.xml2
-rw-r--r--sdnr/wt/apigateway/provider/pom.xml5
-rw-r--r--sdnr/wt/apigateway/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/apigateway/AaiServlet.java12
-rw-r--r--sdnr/wt/apigateway/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/apigateway/BaseServlet.java615
-rw-r--r--sdnr/wt/apigateway/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/apigateway/EsServlet.java54
-rw-r--r--sdnr/wt/apigateway/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/apigateway/MsServlet.java113
-rw-r--r--sdnr/wt/apigateway/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/apigateway/database/DatabaseEntryProvider.java109
-rw-r--r--sdnr/wt/apigateway/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/apigateway/database/DatabaseHttpClient.java85
-rw-r--r--sdnr/wt/apigateway/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/apigateway/database/MediatorServerInfo.java42
-rw-r--r--sdnr/wt/apigateway/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/apigateway/database/http/BaseHTTPClient.java200
-rw-r--r--sdnr/wt/apigateway/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/apigateway/database/http/BaseHTTPResponse.java38
-rw-r--r--sdnr/wt/apigateway/provider/src/main/resources/org/opendaylight/blueprint/blueprint.xml (renamed from sdnr/wt/apigateway/provider/src/main/resources/OSGI-INF/blueprint/blueprint.xml)9
-rw-r--r--sdnr/wt/apigateway/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/apigateway/test/TestDatabaseHttpClient.java137
-rw-r--r--sdnr/wt/apigateway/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/apigateway/test/TestHttpClient.java71
-rw-r--r--sdnr/wt/apigateway/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/apigateway/test/TestMediatorServerServlet.java91
-rw-r--r--sdnr/wt/apigateway/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/apigateway/test/TestQueryCallback.java115
-rw-r--r--sdnr/wt/apigateway/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/apigateway/test/helper/HelpMsServlet.java88
19 files changed, 354 insertions, 1477 deletions
diff --git a/sdnr/wt/apigateway/feature/pom.xml b/sdnr/wt/apigateway/feature/pom.xml
index 6ac9b7927..83671fb5b 100644
--- a/sdnr/wt/apigateway/feature/pom.xml
+++ b/sdnr/wt/apigateway/feature/pom.xml
@@ -36,7 +36,7 @@
<version>0.7.1-SNAPSHOT</version>
<packaging>feature</packaging>
- <name>ccsdk-features :: ${project.artifactId}</name>
+ <name>ccsdk-features :: ${project.artifactId} :: feature</name>
<dependencyManagement>
<dependencies>
diff --git a/sdnr/wt/apigateway/installer/pom.xml b/sdnr/wt/apigateway/installer/pom.xml
index bcfb35de2..fa0d0c597 100755
--- a/sdnr/wt/apigateway/installer/pom.xml
+++ b/sdnr/wt/apigateway/installer/pom.xml
@@ -42,6 +42,7 @@
<version>${project.version}</version>
</dependency>
+
</dependencies>
<build>
@@ -70,25 +71,25 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
- <!-- <execution> -->
- <!-- <id>copy-dependencies</id> -->
- <!-- <goals> -->
- <!-- <goal>copy-dependencies</goal> -->
- <!-- </goals> -->
- <!-- <phase>prepare-package</phase> -->
- <!-- <configuration> -->
- <!-- <transitive>true</transitive> -->
- <!-- <outputDirectory>${project.build.directory}/assembly/system</outputDirectory> -->
- <!-- <overWriteReleases>false</overWriteReleases> -->
- <!-- <overWriteSnapshots>true</overWriteSnapshots> -->
- <!-- <overWriteIfNewer>true</overWriteIfNewer> -->
- <!-- <useRepositoryLayout>true</useRepositoryLayout> -->
- <!-- <addParentPoms>false</addParentPoms> -->
- <!-- <copyPom>false</copyPom> -->
- <!-- <includeArtifactIds>sdnr-wt-apigateway-provider,${application.name}</includeArtifactIds> -->
- <!-- <scope>provided</scope> -->
- <!-- </configuration> -->
- <!-- </execution> -->
+<!-- <execution> -->
+<!-- <id>copy-dependencies</id> -->
+<!-- <goals> -->
+<!-- <goal>copy-dependencies</goal> -->
+<!-- </goals> -->
+<!-- <phase>prepare-package</phase> -->
+<!-- <configuration> -->
+<!-- <transitive>true</transitive> -->
+<!-- <outputDirectory>${project.build.directory}/assembly/system</outputDirectory> -->
+<!-- <overWriteReleases>false</overWriteReleases> -->
+<!-- <overWriteSnapshots>true</overWriteSnapshots> -->
+<!-- <overWriteIfNewer>true</overWriteIfNewer> -->
+<!-- <useRepositoryLayout>true</useRepositoryLayout> -->
+<!-- <addParentPoms>false</addParentPoms> -->
+<!-- <copyPom>false</copyPom> -->
+<!-- <includeArtifactIds>sdnr-wt-apigateway-provider,${application.name}</includeArtifactIds> -->
+<!-- <scope>provided</scope> -->
+<!-- </configuration> -->
+<!-- </execution> -->
<execution>
<id>copy-nested-dependencies</id>
<goals>
@@ -104,8 +105,8 @@
<useRepositoryLayout>true</useRepositoryLayout>
<addParentPoms>false</addParentPoms>
<copyPom>false</copyPom>
- <!--<includeArtifactIds>sdnr-wt-apigateway-provider,${application.name}</includeArtifactIds>-->
- <!--<scope>provided</scope>-->
+ <!--<includeArtifactIds>sdnr-wt-apigateway-provider,${application.name}</includeArtifactIds>-->
+ <!--<scope>provided</scope>-->
</configuration>
</execution>
</executions>
diff --git a/sdnr/wt/apigateway/pom.xml b/sdnr/wt/apigateway/pom.xml
index 280b02b8e..cf539a2b7 100755
--- a/sdnr/wt/apigateway/pom.xml
+++ b/sdnr/wt/apigateway/pom.xml
@@ -39,8 +39,8 @@
<name>ccsdk-features :: ${project.artifactId}</name>
<modules>
- <module>feature</module>
<module>provider</module>
+ <module>feature</module>
<module>installer</module>
</modules>
diff --git a/sdnr/wt/apigateway/provider/pom.xml b/sdnr/wt/apigateway/provider/pom.xml
index 30d2d68d0..a4983c569 100644
--- a/sdnr/wt/apigateway/provider/pom.xml
+++ b/sdnr/wt/apigateway/provider/pom.xml
@@ -38,6 +38,11 @@
<artifactId>servlet-api</artifactId>
</dependency>
<dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>org.osgi.core</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
</dependency>
diff --git a/sdnr/wt/apigateway/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/apigateway/AaiServlet.java b/sdnr/wt/apigateway/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/apigateway/AaiServlet.java
index e73d5c668..44cad5f12 100644
--- a/sdnr/wt/apigateway/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/apigateway/AaiServlet.java
+++ b/sdnr/wt/apigateway/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/apigateway/AaiServlet.java
@@ -32,7 +32,7 @@ public class AaiServlet extends BaseServlet {
*/
private static final long serialVersionUID = 5946205120796162644L;
private static final String OFFLINE_RESPONSE_MESSAGE = "AAI interface is offline";
-
+ private static boolean trustAll = false;
public AaiServlet() {
super();
}
@@ -71,4 +71,14 @@ public class AaiServlet extends BaseServlet {
return base + uri;
}
+
+ @Override
+ protected boolean doTrustAll() {
+ return trustAll;
+ }
+
+ @Override
+ protected void trustAll(boolean trust) {
+ trustAll = trust;
+ }
}
diff --git a/sdnr/wt/apigateway/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/apigateway/BaseServlet.java b/sdnr/wt/apigateway/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/apigateway/BaseServlet.java
index 06002a200..a7173df28 100644
--- a/sdnr/wt/apigateway/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/apigateway/BaseServlet.java
+++ b/sdnr/wt/apigateway/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/apigateway/BaseServlet.java
@@ -36,7 +36,6 @@ import java.util.Map;
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLContext;
-import javax.net.ssl.SSLSession;
import javax.net.ssl.TrustManager;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
@@ -48,336 +47,332 @@ import org.slf4j.LoggerFactory;
public abstract class BaseServlet extends HttpServlet {
- /**
- *
- */
- private static final long serialVersionUID = 7403047480257892794L;
- private static Logger LOG = LoggerFactory.getLogger(BaseServlet.class);
- private static SSLContext sc;
- private boolean trustAll = false;
- private static TrustManager[] trustCerts = null;
- private static final int BUFSIZE = 2048;
+ /**
+ *
+ */
+ private static final long serialVersionUID = 7403047480257892794L;
+ private static Logger LOG = LoggerFactory.getLogger(BaseServlet.class);
+ private static SSLContext sc;
+ private static TrustManager[] trustCerts = null;
+ private static final int BUFSIZE = 2048;
- protected abstract String getOfflineResponse();
+ protected abstract String getOfflineResponse();
- protected abstract boolean isOff();
+ protected abstract boolean isOff();
- protected abstract String getRemoteUrl(String uri);
+ protected abstract boolean doTrustAll();
+ protected abstract void trustAll(boolean trust);
+ protected abstract String getRemoteUrl(String uri);
- /**
- *
- * @throws NoSuchAlgorithmException
- * @throws KeyManagementException
- */
- private static void setupSslTrustAll(boolean trustall) throws NoSuchAlgorithmException, KeyManagementException {
+ /**
+ *
+ * @throws NoSuchAlgorithmException
+ * @throws KeyManagementException
+ */
+ private static void setupSslTrustAll(boolean trustall) throws NoSuchAlgorithmException, KeyManagementException {
- sc = SSLContext.getInstance("TLSv1.2");
- if (trustall) {
- if (trustCerts == null) {
- trustCerts = new TrustManager[] { new javax.net.ssl.X509TrustManager() {
- @Override
- public java.security.cert.X509Certificate[] getAcceptedIssuers() {
- return new java.security.cert.X509Certificate[] {};
- }
+ sc = SSLContext.getInstance("TLSv1.2");
+ if (trustall) {
+ if (trustCerts == null) {
+ trustCerts = new TrustManager[] { new javax.net.ssl.X509TrustManager() {
+ @Override
+ public java.security.cert.X509Certificate[] getAcceptedIssuers() {
+ return new java.security.cert.X509Certificate[] {};
+ }
- @Override
- public void checkClientTrusted(java.security.cert.X509Certificate[] certs, String authType) {
- // do not check anything when trust all
- }
+ @Override
+ public void checkClientTrusted(java.security.cert.X509Certificate[] certs, String authType) {
+ // do not check anything when trust all
+ }
- @Override
- public void checkServerTrusted(java.security.cert.X509Certificate[] certs, String authType) {
- // do not check anything when trust all
- }
- } };
- }
- } else {
- if (trustCerts != null)
- trustCerts = null;
- }
- // Init the SSLContext with a TrustManager[] and SecureRandom()
- sc.init(null, trustCerts, new java.security.SecureRandom());
- }
+ @Override
+ public void checkServerTrusted(java.security.cert.X509Certificate[] certs, String authType) {
+ // do not check anything when trust all
+ }
+ } };
+ }
+ } else {
+ if (trustCerts != null) {
+ trustCerts = null;
+ }
+ }
+ // Init the SSLContext with a TrustManager[] and SecureRandom()
+ sc.init(null, trustCerts, new java.security.SecureRandom());
+ }
- public BaseServlet() {
- try {
- MyProperties.Instantiate();
- } catch (Exception e) {
- LOG.error(e.getMessage());
- }
- this.trysslSetup(true);
- }
+ public BaseServlet() {
+ try {
+ MyProperties.Instantiate();
+ } catch (Exception e) {
+ LOG.error(e.getMessage());
+ }
+ this.trysslSetup(true);
+ }
- private void trysslSetup() {
- this.trysslSetup(false);
- }
+ private void trysslSetup() {
+ this.trysslSetup(false);
+ }
- /**
- * init or deinit ssl insecure mode regarding to property
- *
- * @param force init independent from property
- */
- private void trysslSetup(boolean force) {
- // if trustall config has changed
- if (force || trustAll != MyProperties.getInstance().trustInsecure()) {
- // resetup ssl config
- trustAll = MyProperties.getInstance().trustInsecure();
- try {
- setupSslTrustAll(trustAll);
- } catch (Exception e) {
- LOG.error("problem setting up SSL: {}", e.getMessage());
- }
- }
- }
+ /**
+ * init or deinit ssl insecure mode regarding to property
+ *
+ * @param force init independent from property
+ */
+ private void trysslSetup(boolean force) {
+ // if trustall config has changed
+ boolean trustAll = MyProperties.getInstance().trustInsecure();
+ if (force || this.doTrustAll() != trustAll) {
+ this.trustAll(trustAll);
+ // resetup ssl config
+ try {
+ setupSslTrustAll(trustAll);
+ } catch (Exception e) {
+ LOG.error("problem setting up SSL: {}", e.getMessage());
+ }
+ }
+ }
- protected void sendOffResponse(HttpServletResponse response) {
- response.setStatus(200);// HTML/OK
- response.setHeader("Content-Type", "text/html; charset=utf-8");
- try {
- response.getOutputStream().write(this.getOfflineResponse().getBytes(StandardCharsets.UTF_8));
- } catch (IOException e) {
- LOG.debug("problem writing offline response");
- }
+ protected void sendOffResponse(HttpServletResponse response) {
+ response.setStatus(200);// HTML/OK
+ response.setHeader("Content-Type", "text/html; charset=utf-8");
+ try {
+ response.getOutputStream().write(this.getOfflineResponse().getBytes(StandardCharsets.UTF_8));
+ } catch (IOException e) {
+ LOG.debug("problem writing offline response");
+ }
- }
+ }
- @Override
- protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
- if (this.isOff()) {
- this.sendOffResponse(resp);
- } else {
- this.trysslSetup();
- HttpURLConnection http = null;
- try {
- http = (HttpURLConnection) this.getConnection(req, "GET");
- } catch (IOException e) {
- LOG.warn(e.getMessage());
- }
- if (http != null) {
- try {
- this.handleRequest(http, req, resp, "GET");
- } catch (IOException e) {
- LOG.warn(e.getMessage());
- }
- http.disconnect();
- }
- else {
- this.set404Response(resp);
- }
- }
- }
+ @Override
+ protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
+ if (this.isOff()) {
+ this.sendOffResponse(resp);
+ } else {
+ this.trysslSetup();
+ HttpURLConnection http = null;
+ try {
+ http = (HttpURLConnection) this.getConnection(req, "GET");
+ } catch (IOException e) {
+ LOG.warn(e.getMessage());
+ }
+ if (http != null) {
+ try {
+ this.handleRequest(http, req, resp, "GET");
+ } catch (IOException e) {
+ LOG.warn(e.getMessage());
+ }
+ http.disconnect();
+ }
+ else {
+ this.set404Response(resp);
+ }
+ }
+ }
- @Override
- protected void doPut(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
- if (this.isOff()) {
- this.sendOffResponse(resp);
- } else {
- this.trysslSetup();
- HttpURLConnection http = null;
- try {
- http = (HttpURLConnection) this.getConnection(req, "PUT");
- } catch (IOException e) {
- LOG.warn(e.getMessage());
- }
- if (http != null) {
- try {
- this.handleRequest(http, req, resp, "PUT");
- } catch (IOException e) {
- LOG.warn(e.getMessage());
- }
- http.disconnect();
- }
- else {
- this.set404Response(resp);
- }
- }
- }
+ @Override
+ protected void doPut(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
+ if (this.isOff()) {
+ this.sendOffResponse(resp);
+ } else {
+ this.trysslSetup();
+ HttpURLConnection http = null;
+ try {
+ http = (HttpURLConnection) this.getConnection(req, "PUT");
+ } catch (IOException e) {
+ LOG.warn(e.getMessage());
+ }
+ if (http != null) {
+ try {
+ this.handleRequest(http, req, resp, "PUT");
+ } catch (IOException e) {
+ LOG.warn(e.getMessage());
+ }
+ http.disconnect();
+ }
+ else {
+ this.set404Response(resp);
+ }
+ }
+ }
- @Override
- protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
- if (this.isOff()) {
- this.sendOffResponse(resp);
- } else {
- this.trysslSetup();
- HttpURLConnection http = null;
- try {
- http = (HttpURLConnection) this.getConnection(req, "POST");
- } catch (IOException e) {
- LOG.warn(e.getMessage());
- }
- if (http != null) {
- try {
- this.handleRequest(http, req, resp, "POST");
- } catch (IOException e) {
- LOG.warn(e.getMessage());
- }
- http.disconnect();
- }
- else {
- this.set404Response(resp);
- }
- }
- }
+ @Override
+ protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
+ if (this.isOff()) {
+ this.sendOffResponse(resp);
+ } else {
+ this.trysslSetup();
+ HttpURLConnection http = null;
+ try {
+ http = (HttpURLConnection) this.getConnection(req, "POST");
+ } catch (IOException e) {
+ LOG.warn(e.getMessage());
+ }
+ if (http != null) {
+ try {
+ this.handleRequest(http, req, resp, "POST");
+ } catch (IOException e) {
+ LOG.warn(e.getMessage());
+ }
+ http.disconnect();
+ }
+ else {
+ this.set404Response(resp);
+ }
+ }
+ }
- @Override
- protected void doDelete(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
- if (this.isOff()) {
- this.sendOffResponse(resp);
- } else {
- this.trysslSetup();
- HttpURLConnection http = null;
- try {
- http = (HttpURLConnection) this.getConnection(req, "DELETE");
- } catch (IOException e) {
- LOG.warn(e.getMessage());
- }
- if (http != null) {
- try {
- this.handleRequest(http, req, resp, "DELETE");
- } catch (IOException e) {
- LOG.warn(e.getMessage());
- }
- http.disconnect();
- }
- else {
- this.set404Response(resp);
- }
- }
- }
+ @Override
+ protected void doDelete(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
+ if (this.isOff()) {
+ this.sendOffResponse(resp);
+ } else {
+ this.trysslSetup();
+ HttpURLConnection http = null;
+ try {
+ http = (HttpURLConnection) this.getConnection(req, "DELETE");
+ } catch (IOException e) {
+ LOG.warn(e.getMessage());
+ }
+ if (http != null) {
+ try {
+ this.handleRequest(http, req, resp, "DELETE");
+ } catch (IOException e) {
+ LOG.warn(e.getMessage());
+ }
+ http.disconnect();
+ }
+ else {
+ this.set404Response(resp);
+ }
+ }
+ }
- private void set404Response(HttpServletResponse resp) {
- resp.setStatus(404);
- }
+ private void set404Response(HttpServletResponse resp) {
+ resp.setStatus(404);
+ }
- private URLConnection getConnection(HttpServletRequest req, final String method) throws IOException {
+ private URLConnection getConnection(HttpServletRequest req, final String method) throws IOException {
- LOG.debug("{} Request to {}", method,req.getRequestURL());
- String surl = this.getRemoteUrl(req.getRequestURI());
- if(method=="GET") {
- Enumeration<String> params = req.getParameterNames();
- if(params!=null) {
- String param;
- if(params.hasMoreElements()) {
- param=params.nextElement();
- surl+="?"+param+"="+req.getParameter(param);
- }
- while(params.hasMoreElements()) {
- param=params.nextElement();
- surl+="&"+param+"="+req.getParameter(param);
- }
- }
- }
- LOG.debug("RemoteURL: {}", surl);
- if(surl==null) {
- return null;
- }
- URL url = new URL(surl);
- URLConnection http = url.openConnection();
- ((HttpURLConnection) http).setRequestMethod(method);
- if (url.toString().startsWith("https")) {
- ((HttpsURLConnection) http).setSSLSocketFactory(sc.getSocketFactory());
- if (trustAll) {
- HostnameVerifier allHostsValid = new HostnameVerifier() {
+ LOG.debug("{} Request to {}", method,req.getRequestURL());
+ String surl = this.getRemoteUrl(req.getRequestURI());
+ if("GET".equals(method)) {
+ Enumeration<?> params = req.getParameterNames();
+ if(params!=null) {
+ String param;
+ if(params.hasMoreElements()) {
+ param=(String)params.nextElement();
+ surl+="?"+param+"="+req.getParameter(param);
+ }
+ while(params.hasMoreElements()) {
+ param=(String)params.nextElement();
+ surl+="&"+param+"="+req.getParameter(param);
+ }
+ }
+ }
+ LOG.debug("RemoteURL: {}", surl);
+ if(surl==null) {
+ return null;
+ }
+ URL url = new URL(surl);
+ URLConnection http = url.openConnection();
+ ((HttpURLConnection) http).setRequestMethod(method);
+ if (url.toString().startsWith("https")) {
+ ((HttpsURLConnection) http).setSSLSocketFactory(sc.getSocketFactory());
+ if (this.doTrustAll()) {
+ HostnameVerifier allHostsValid = (hostname, session) -> true;
+ ((HttpsURLConnection) http).setHostnameVerifier(allHostsValid);
+ }
+ }
+ http.setDoOutput(true);
+ // copy request headers
+ String s = "";
+ Enumeration<?> headers = req.getHeaderNames();
+ while (headers.hasMoreElements()) {
+ String h = (String)headers.nextElement();
+ String v = req.getHeader(h);
+ if (h != null && h.equals("Host")) {
+ v = url.getAuthority();
+ }
+ s += String.format("%s:%s;", h, v);
+ http.setRequestProperty(h, v);
+ }
+ LOG.debug("Request Headers: {}", s);
+ return http;
+ }
- @Override
- public boolean verify(String hostname, SSLSession session) {
- // do not verify host if trust all
- return true;
- }
- };
- ((HttpsURLConnection) http).setHostnameVerifier(allHostsValid);
- }
- }
- http.setDoOutput(true);
- // copy request headers
- String s = "";
- Enumeration<String> headers = req.getHeaderNames();
- while (headers.hasMoreElements()) {
- String h = headers.nextElement();
- String v = req.getHeader(h);
- if (h != null && h.equals("Host")) {
- v = url.getAuthority();
- }
- s += String.format("%s:%s;", h, v);
- http.setRequestProperty(h, v);
- }
- LOG.debug("Request Headers: {}", s);
- return http;
- }
+ private void handleRequest(HttpURLConnection http, HttpServletRequest req, HttpServletResponse resp, String method)
+ throws IOException {
+ byte[] buffer = new byte[BUFSIZE];
+ int len = 0, lensum = 0;
+ // send request
+ // Send the message to destination
+ OutputStream output = null;
+ if (!method.equals("GET")) {
+ try {
+ output = http.getOutputStream();
+ } catch (Exception e) {
+ LOG.debug("problem reading output stream: {}", e.getMessage());
+ }
+ }
+ if (output != null) {
+ while (true) {
+ len = req.getInputStream().read(buffer, 0, BUFSIZE);
+ if (len <= 0) {
+ break;
+ }
+ lensum += len;
+ output.write(buffer, 0, len);
+ }
+ }
+ LOG.debug("written {} data out", lensum);
+ int responseCode = http.getResponseCode();
+ // Receive answer
+ InputStream response;
+ if (responseCode >= 200 && responseCode < 300) {
+ response = http.getInputStream();
+ } else {
+ response = http.getErrorStream();
+ if (response == null) {
+ http.getInputStream();
+ }
+ }
- private void handleRequest(HttpURLConnection http, HttpServletRequest req, HttpServletResponse resp, String method)
- throws IOException {
- byte[] buffer = new byte[BUFSIZE];
- int len = 0, lensum = 0;
- // send request
- // Send the message to destination
- OutputStream output = null;
- if (!method.equals("GET")) {
- try {
- output = http.getOutputStream();
- } catch (Exception e) {
- LOG.debug("problem reading output stream: {}", e.getMessage());
- }
- }
- if (output != null) {
- while (true) {
- len = req.getInputStream().read(buffer, 0, BUFSIZE);
- if (len <= 0) {
- break;
- }
- lensum += len;
- output.write(buffer, 0, len);
- }
- }
- LOG.debug("written {} data out", lensum);
- int responseCode = http.getResponseCode();
- // Receive answer
- InputStream response;
- if (responseCode >= 200 && responseCode < 300) {
- response = http.getInputStream();
- } else {
- response = http.getErrorStream();
- if (response == null) {
- http.getInputStream();
- }
- }
+ LOG.debug("ResponseCode: {}", responseCode);
+ resp.setStatus(responseCode);
+ Map<String, List<String>> set = http.getHeaderFields();
+ String s = "";
+ if (set != null) {
+ for (Map.Entry<String, List<String>> entry : set.entrySet()) {
+ if (entry.getKey() == null) {
+ continue;
+ }
+ for (String v : entry.getValue()) {
+ resp.setHeader(entry.getKey(), v);
+ s += String.format("%s:%s;", entry.getKey(), v);
+ }
+ if (MyProperties.getInstance().corsEnabled()) {
+ resp.setHeader("Access-Control-Allow-Origin", "*");
+ // resp.setHeader("Access-Control-Allow-Methods", "GET,PUT,POST,DELETE");
+ resp.setHeader("Access-Control-Allow-Headers", "Content-Type, Authorization");
+ }
- LOG.debug("ResponseCode: {}", responseCode);
- resp.setStatus(responseCode);
- Map<String, List<String>> set = http.getHeaderFields();
- String s = "";
- if (set != null) {
- for (Map.Entry<String, List<String>> entry : set.entrySet()) {
- if (entry.getKey() == null) {
- continue;
- }
- for (String v : entry.getValue()) {
- resp.setHeader(entry.getKey(), v);
- s += String.format("%s:%s;", entry.getKey(), v);
- }
- if (MyProperties.getInstance().corsEnabled()) {
- resp.setHeader("Access-Control-Allow-Origin", "*");
- // resp.setHeader("Access-Control-Allow-Methods", "GET,PUT,POST,DELETE");
- resp.setHeader("Access-Control-Allow-Headers", "Content-Type, Authorization");
- }
-
- }
- }
- LOG.debug("Received Headers: {}", s);
- lensum = 0;
- if (response != null) {
- while (true) {
- len = response.read(buffer, 0, BUFSIZE);
- if (len <= 0) {
- break;
- }
- lensum += len;
- resp.getOutputStream().write(buffer, 0, len);
- }
- } else {
- LOG.debug("response is null");
- }
- LOG.debug("Received {} bytes", lensum);
- }
+ }
+ }
+ LOG.debug("Received Headers: {}", s);
+ lensum = 0;
+ if (response != null) {
+ while (true) {
+ len = response.read(buffer, 0, BUFSIZE);
+ if (len <= 0) {
+ break;
+ }
+ lensum += len;
+ resp.getOutputStream().write(buffer, 0, len);
+ }
+ } else {
+ LOG.debug("response is null");
+ }
+ LOG.debug("Received {} bytes", lensum);
+ }
}
diff --git a/sdnr/wt/apigateway/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/apigateway/EsServlet.java b/sdnr/wt/apigateway/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/apigateway/EsServlet.java
index 2b5488498..f08a7fffa 100644
--- a/sdnr/wt/apigateway/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/apigateway/EsServlet.java
+++ b/sdnr/wt/apigateway/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/apigateway/EsServlet.java
@@ -21,11 +21,6 @@
package org.onap.ccsdk.features.sdnr.wt.apigateway;
import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -35,10 +30,6 @@ import org.slf4j.LoggerFactory;
public class EsServlet extends BaseServlet {
- public interface IRequestCallback{
-
- void onRequest(String uri,String method);
- }
/**
*
*/
@@ -46,43 +37,12 @@ public class EsServlet extends BaseServlet {
private static final String OFFLINE_RESPONSE_MESSAGE = "Database interface is offline";
private static Logger LOG = LoggerFactory.getLogger(EsServlet.class);
- private static final Map<String,List<IRequestCallback>> requestCallbacks=new HashMap<String,List<IRequestCallback>>();
-
- public static void registerRequestCallback(String uri,IRequestCallback callback) {
- List<IRequestCallback> list=requestCallbacks.getOrDefault(uri, new ArrayList<IRequestCallback>());
- if(!list.contains(callback)) {
- list.add(callback);
- }
- requestCallbacks.put(uri, list);
- }
- public static void unregisterRequestCallback(String uri,IRequestCallback callback) {
- List<IRequestCallback> list=requestCallbacks.getOrDefault(uri, new ArrayList<IRequestCallback>());
- if(list.contains(callback)) {
- list.remove(callback);
- }
- }
-
+ private static boolean trustAll = false;
public EsServlet() {
super();
}
- private void handleCallbacks(String uri,String method) {
-
- LOG.debug("try to find callbacks for uri {}",uri);
- for(Entry<String,List<IRequestCallback>> entry:requestCallbacks.entrySet()) {
- if(uri.contains(entry.getKey())) {
- List<IRequestCallback> cblist = entry.getValue();
- if(cblist!=null && cblist.size()>0) {
- LOG.debug("found at least one");
- for(IRequestCallback cb :cblist) {
- cb.onRequest(uri, method);
- }
- }
- }
-
- }
- }
@Override
protected void doOptions(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
if (MyProperties.getInstance().corsEnabled()) {
@@ -113,21 +73,25 @@ public class EsServlet extends BaseServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doGet(req, resp);
- this.handleCallbacks(req.getRequestURI(),"GET");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doPost(req, resp);
- this.handleCallbacks(req.getRequestURI(),"POST");
}
@Override
protected void doPut(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doPut(req, resp);
- this.handleCallbacks(req.getRequestURI(),"PUT");
}
@Override
protected void doDelete(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doDelete(req, resp);
- this.handleCallbacks(req.getRequestURI(),"DELETE");
+ }
+ @Override
+ protected boolean doTrustAll() {
+ return trustAll;
+ }
+ @Override
+ protected void trustAll(boolean trust) {
+ trustAll = trust;
}
}
diff --git a/sdnr/wt/apigateway/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/apigateway/MsServlet.java b/sdnr/wt/apigateway/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/apigateway/MsServlet.java
deleted file mode 100644
index aee7a3b09..000000000
--- a/sdnr/wt/apigateway/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/apigateway/MsServlet.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * ONAP : CCSDK.apps.sdnr.wt.apigateway
- * ================================================================================
- * Copyright (C) 2019 highstreet technologies GmbH 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.
- * 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.
- * ============LICENSE_END=========================================================
- */
-package org.onap.ccsdk.features.sdnr.wt.apigateway;
-
-import java.io.IOException;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.onap.ccsdk.features.sdnr.wt.apigateway.EsServlet.IRequestCallback;
-import org.onap.ccsdk.features.sdnr.wt.apigateway.database.DatabaseEntryProvider;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class MsServlet extends BaseServlet {
-
- /**
- *
- */
- private static Logger LOG = LoggerFactory.getLogger(MsServlet.class);
- private static final long serialVersionUID = -5361461082028405171L;
- private static final String OFFLINE_RESPONSE_MESSAGE = "MediatorServer interface is offline";
- private static final String DATABASE_REQUEST_URI_REGEX = "/mediator-server/mediator-server";
- private final DatabaseEntryProvider entryProvider;
- private boolean isSecure;
- public void setIsSecure(boolean secure) {
- if(this.isSecure!=secure) {
- this.isSecure=secure;
- this.entryProvider.setBaseUrl(this.getDBBaseUrl());
- }
- }
- public MsServlet() {
- super();
- this.entryProvider = new DatabaseEntryProvider(this.getDBBaseUrl(),60);
- EsServlet.registerRequestCallback(DATABASE_REQUEST_URI_REGEX, this.dbRequestCallback);
- }
-
- private String getDBBaseUrl() {
- return MyProperties.getInstance().getEsBaseUrl();
- }
-
- private final IRequestCallback dbRequestCallback = new IRequestCallback() {
-
- @Override
- public void onRequest(String uri, String method) {
- if(method=="POST"|| method=="PUT" || method=="DELETE") {
- LOG.debug("found mediator related request. trigger update of local entries");
- MsServlet.this.entryProvider.triggerReloadSync();
- }
-
- }
- };
- protected DatabaseEntryProvider getEntryProvider() {
- return this.entryProvider;
- }
- @Override
- protected void doOptions(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
- resp.setStatus(200);
- }
- @Override
- protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
- super.doGet(req, resp);
- this.isSecure=req.getScheme().equals("https");
- }
- @Override
- protected String getOfflineResponse() {
- return OFFLINE_RESPONSE_MESSAGE;
- }
-
- @Override
- protected boolean isOff() {
- return false;
- }
-
- @Override
- protected String getRemoteUrl(String uri) {
- String dbServerId = "0";
- if (uri == null)
- uri = "";
- if (uri.length() > 0) {
- uri = uri.substring("/ms/".length());
- int idx= uri.indexOf("/");
- dbServerId = uri.substring(0,idx);
- uri=uri.substring(idx);
- }
- LOG.debug("request for ms server with id={}",dbServerId);
- String url= this.getBaseUrl(dbServerId) + uri;
- LOG.debug("dest-url: {}",url);
- return url;
- }
-
- protected String getBaseUrl(String dbServerId) {
- return this.entryProvider.getHostUrl(dbServerId);
- }
-}
diff --git a/sdnr/wt/apigateway/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/apigateway/database/DatabaseEntryProvider.java b/sdnr/wt/apigateway/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/apigateway/database/DatabaseEntryProvider.java
deleted file mode 100644
index b467e27a0..000000000
--- a/sdnr/wt/apigateway/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/apigateway/database/DatabaseEntryProvider.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * ONAP : CCSDK.apps.sdnr.wt.apigateway
- * ================================================================================
- * Copyright (C) 2019 highstreet technologies GmbH 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.
- * 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.
- * ============LICENSE_END=========================================================
- */
-package org.onap.ccsdk.features.sdnr.wt.apigateway.database;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.concurrent.Executors;
-import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.TimeUnit;
-
-
-public class DatabaseEntryProvider implements AutoCloseable {
-
- private final DatabaseHttpClient httpClient;
- private int refreshInterval;
- private final Map<String, MediatorServerInfo> entries;
- private final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
- private boolean isRunning;
-
- protected DatabaseEntryProvider (DatabaseHttpClient httpClient,int refreshInterval) {
- this.httpClient = httpClient;
- this.refreshInterval = refreshInterval;
- this.entries = new HashMap<String, MediatorServerInfo>();
- this.isRunning = false;
- this.scheduler.scheduleAtFixedRate(onTick, this.refreshInterval, this.refreshInterval, TimeUnit.SECONDS);
- }
- public DatabaseEntryProvider(String dbBaseUri, int refreshInterval) {
-
- this.httpClient = new DatabaseHttpClient(dbBaseUri, false);
- this.refreshInterval = refreshInterval;
- this.entries = new HashMap<String, MediatorServerInfo>();
- this.isRunning = false;
- this.scheduler.scheduleAtFixedRate(onTick, this.refreshInterval, this.refreshInterval, TimeUnit.SECONDS);
- }
-
- private final Runnable onTick = new Runnable() {
-
- @Override
- public void run() {
- isRunning = true;
- Map<String, MediatorServerInfo> map = DatabaseEntryProvider.this.httpClient.requestEntries();
- DatabaseEntryProvider.this.entries.putAll(map);
- isRunning = false;
- }
-
- };
-
- public String getHostUrl(String dbServerId) {
- MediatorServerInfo info = this.entries.getOrDefault(dbServerId, null);
- return info == null ? null : info.getHost();
- }
-
- @Override
- public void close() throws Exception {
- this.scheduler.shutdown();
- }
-
- public boolean triggerReloadSync() {
- new Thread(onTick).start();
- int i=20;
- while(isRunning && i-->0) {
- try {
- Thread.sleep(500);
- } catch (InterruptedException e) {
- Thread.interrupted();
- }
- }
- return i>0;
- }
-
- public void setEntries(Map<String, MediatorServerInfo> e) {
-
- this.entries.clear();
- this.entries.putAll(e);
- }
- public String printEntries() {
- String s="";
- if(this.entries==null || this.entries.size()<=0) {
- return "empty";
- }
- for(Entry<String, MediatorServerInfo> entry:this.entries.entrySet()) {
- s+=String.format("%s:%s", entry.getKey(),entry.getValue().toString()+"\n");
- }
- return s;
- }
- public void setBaseUrl(String baseUrl) {
- this.httpClient.setBaseUrl(baseUrl);
- }
-
-}
diff --git a/sdnr/wt/apigateway/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/apigateway/database/DatabaseHttpClient.java b/sdnr/wt/apigateway/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/apigateway/database/DatabaseHttpClient.java
deleted file mode 100644
index d0f575362..000000000
--- a/sdnr/wt/apigateway/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/apigateway/database/DatabaseHttpClient.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * ONAP : CCSDK.apps.sdnr.wt.apigateway
- * ================================================================================
- * Copyright (C) 2019 highstreet technologies GmbH 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.
- * 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.
- * ============LICENSE_END=========================================================
- */
-package org.onap.ccsdk.features.sdnr.wt.apigateway.database;
-
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.json.JSONArray;
-import org.json.JSONObject;
-import org.onap.ccsdk.features.sdnr.wt.apigateway.database.http.BaseHTTPClient;
-import org.onap.ccsdk.features.sdnr.wt.apigateway.database.http.BaseHTTPResponse;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class DatabaseHttpClient extends BaseHTTPClient {
-
- private static Logger LOG = LoggerFactory.getLogger(DatabaseHttpClient.class);
- private static final String URI = "/mediator-server/mediator-server/_search";
- private final Map<String, String> headers;
-
- public DatabaseHttpClient(String base, boolean trustAllCerts) {
- super(base, trustAllCerts);
- this.headers = this.getHeaders();
- }
-
- private Map<String, String> getHeaders() {
- Map<String, String> h = new HashMap<String, String>();
- h.put("Content-Type", "application/json");
- return h;
- }
-
- public Map<String, MediatorServerInfo> requestEntries() {
- Map<String, MediatorServerInfo> entries = new HashMap<String, MediatorServerInfo>();
- BaseHTTPResponse response = null;
- try {
- response = this.sendRequest(URI, "GET", (String) null, this.headers);
- } catch (IOException e) {
- LOG.warn("problem reading db entries of mediator server: {}", e.getMessage());
- }
- if (response != null && response.code == BaseHTTPResponse.CODE200) {
- try {
- JSONObject o = new JSONObject(response.body);
- if (o.has("hits")) {
- JSONObject hits = o.getJSONObject("hits");
- if (hits.has("hits")) {
- JSONArray hitsarray = hits.getJSONArray("hits");
- if (hitsarray.length() > 0) {
- for (int i = 0; i < hitsarray.length(); i++) {
- JSONObject entry = hitsarray.getJSONObject(i);
- entries.put(entry.getString("_id"),
- new MediatorServerInfo(entry.getJSONObject("_source").getString("name"),
- entry.getJSONObject("_source").getString("url")));
- }
- }
-
- }
- }
- } catch (Exception e) {
- LOG.warn("problem parsing response: {} | e={}", response, e.getMessage());
- }
- }
- return entries;
- }
-
-
-}
diff --git a/sdnr/wt/apigateway/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/apigateway/database/MediatorServerInfo.java b/sdnr/wt/apigateway/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/apigateway/database/MediatorServerInfo.java
deleted file mode 100644
index a90b90173..000000000
--- a/sdnr/wt/apigateway/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/apigateway/database/MediatorServerInfo.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * ONAP : CCSDK.apps.sdnr.wt.apigateway
- * ================================================================================
- * Copyright (C) 2018 highstreet technologies GmbH 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.
- * 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.
- * ============LICENSE_END=========================================================
- */
-package org.onap.ccsdk.features.sdnr.wt.apigateway.database;
-
-public class MediatorServerInfo {
-
- private final String name;
- private final String url;
- public MediatorServerInfo(String name,String url) {
- this.name = name;
- if(url.endsWith("/")) {
- url=url.substring(0,url.length()-1);
- }
- this.url = url;
- }
- public String getName() {
- return this.name;
- }
- public String getHost() {
- return this.url;
- }
-
-
-}
diff --git a/sdnr/wt/apigateway/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/apigateway/database/http/BaseHTTPClient.java b/sdnr/wt/apigateway/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/apigateway/database/http/BaseHTTPClient.java
deleted file mode 100644
index 9c89eeff3..000000000
--- a/sdnr/wt/apigateway/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/apigateway/database/http/BaseHTTPClient.java
+++ /dev/null
@@ -1,200 +0,0 @@
-/*******************************************************************************
- * ============LICENSE_START========================================================================
- * ONAP : ccsdk feature sdnr wt
- * =================================================================================================
- * Copyright (C) 2019 highstreet technologies GmbH 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. 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.
- * ============LICENSE_END==========================================================================
- ******************************************************************************/
-package org.onap.ccsdk.features.sdnr.wt.apigateway.database.http;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.net.HttpURLConnection;
-import java.net.URL;
-import java.net.URLConnection;
-import java.nio.charset.Charset;
-import java.nio.charset.StandardCharsets;
-import java.security.KeyManagementException;
-import java.security.NoSuchAlgorithmException;
-import java.util.Base64;
-import java.util.Map;
-import javax.annotation.Nonnull;
-import javax.net.ssl.HostnameVerifier;
-import javax.net.ssl.HttpsURLConnection;
-import javax.net.ssl.KeyManager;
-import javax.net.ssl.SSLContext;
-import javax.net.ssl.TrustManager;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class BaseHTTPClient {
-
- private static Logger LOG = LoggerFactory.getLogger(BaseHTTPClient.class);
- private static final int BUFSIZE = 1024;
- private static final Charset CHARSET = StandardCharsets.UTF_8;
- private static final String SSLCONTEXT = "TLSv1.2";
- private static final int DEFAULT_HTTP_TIMEOUT_MS = 30000; // in ms
-
- private final boolean trustAll;
- private String baseUrl;
-
- private int timeout = DEFAULT_HTTP_TIMEOUT_MS;
- private SSLContext sc = null;
-
- public BaseHTTPClient(String base) {
- this(base, false);
- }
-
- public void setBaseUrl(String baseUrl) {
- this.baseUrl = baseUrl;
- try {
- sc = setupSsl(trustAll);
- } catch (KeyManagementException | NoSuchAlgorithmException e) {
- LOG.warn("problem ssl setup: " + e.getMessage());
- }
- }
-
- public BaseHTTPClient(String base, boolean trustAllCerts) {
- this.baseUrl = base;
- this.trustAll = trustAllCerts;
- try {
- sc = setupSsl(trustAll);
- } catch (KeyManagementException | NoSuchAlgorithmException e) {
- LOG.warn("problem ssl setup: " + e.getMessage());
- }
- }
-
- protected @Nonnull BaseHTTPResponse sendRequest(String uri, String method, String body, Map<String, String> headers)
- throws IOException {
- return this.sendRequest(uri, method, body != null ? body.getBytes(CHARSET) : null, headers);
- }
-
- protected @Nonnull BaseHTTPResponse sendRequest(String uri, String method, byte[] body, Map<String, String> headers)
- throws IOException {
- if (uri == null) {
- uri = "";
- }
- String surl = this.baseUrl;
- if (!surl.endsWith("/") && uri.length() > 0) {
- surl += "/";
- }
- if (uri.startsWith("/")) {
- uri = uri.substring(1);
- }
- surl += uri;
- LOG.debug("try to send request with url=" + this.baseUrl + uri + " as method=" + method);
- LOG.trace("body:" + (body == null ? "null" : new String(body, CHARSET)));
- URL url = new URL(surl);
- URLConnection http = url.openConnection();
- http.setConnectTimeout(this.timeout);
- if (surl.toString().startsWith("https")) {
- if (sc != null) {
- ((HttpsURLConnection) http).setSSLSocketFactory(sc.getSocketFactory());
- if (trustAll) {
- LOG.debug("trusting all certs");
- HostnameVerifier allHostsValid = (hostname, session) -> true;
- ((HttpsURLConnection) http).setHostnameVerifier(allHostsValid);
- }
- } else // Should never happen
- {
- LOG.warn("No SSL context available");
- return new BaseHTTPResponse(-1, "");
- }
- }
- ((HttpURLConnection) http).setRequestMethod(method);
- http.setDoOutput(true);
- if (headers != null && headers.size() > 0) {
- for (String key : headers.keySet()) {
- http.setRequestProperty(key, headers.get(key));
- LOG.trace("set http header " + key + ": " + headers.get(key));
- }
- }
- byte[] buffer = new byte[BUFSIZE];
- int len = 0, lensum = 0;
- // send request
- // Send the message to destination
- if (!method.equals("GET") && body != null && body.length > 0) {
- try (OutputStream output = http.getOutputStream()) {
- output.write(body);
- }
- }
- // Receive answer
- int responseCode = ((HttpURLConnection) http).getResponseCode();
- String sresponse = "";
- InputStream response = null;
- try {
- if (responseCode >= 200 && responseCode < 300) {
- response = http.getInputStream();
- } else {
- response = ((HttpURLConnection) http).getErrorStream();
- if (response == null) {
- response = http.getInputStream();
- }
- }
- if (response != null) {
- while (true) {
- len = response.read(buffer, 0, BUFSIZE);
- if (len <= 0) {
- break;
- }
- lensum += len;
- sresponse += new String(buffer, 0, len, CHARSET);
- }
- } else {
- LOG.debug("response is null");
- }
- } catch (Exception e) {
- LOG.debug("No response. ", e);
- } finally {
- if (response != null) {
- response.close();
- }
- }
- LOG.debug("ResponseCode: " + responseCode);
- LOG.trace("Response (len:{}): {}", String.valueOf(lensum), sresponse);
- return new BaseHTTPResponse(responseCode, sresponse);
- }
-
- public static SSLContext setupSsl(boolean trustall) throws KeyManagementException, NoSuchAlgorithmException {
-
- SSLContext sc = SSLContext.getInstance(SSLCONTEXT);
- TrustManager[] trustCerts = null;
- if (trustall) {
- trustCerts = new TrustManager[] { new javax.net.ssl.X509TrustManager() {
- @Override
- public java.security.cert.X509Certificate[] getAcceptedIssuers() {
- return null;
- }
-
- @Override
- public void checkClientTrusted(java.security.cert.X509Certificate[] certs, String authType) {
- }
-
- @Override
- public void checkServerTrusted(java.security.cert.X509Certificate[] certs, String authType) {
- }
- } };
-
- }
- KeyManager[] kms = null;
- // Init the SSLContext with a TrustManager[] and SecureRandom()
- sc.init(kms, trustCerts, new java.security.SecureRandom());
- return sc;
- }
-
- public static String getAuthorizationHeaderValue(String username, String password) {
- return "Basic " + new String(Base64.getEncoder().encode((username + ":" + password).getBytes()));
- }
-
-}
diff --git a/sdnr/wt/apigateway/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/apigateway/database/http/BaseHTTPResponse.java b/sdnr/wt/apigateway/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/apigateway/database/http/BaseHTTPResponse.java
deleted file mode 100644
index 60d0a3638..000000000
--- a/sdnr/wt/apigateway/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/apigateway/database/http/BaseHTTPResponse.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * ============LICENSE_START========================================================================
- * ONAP : ccsdk feature sdnr wt
- * =================================================================================================
- * Copyright (C) 2019 highstreet technologies GmbH 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. 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.
- * ============LICENSE_END==========================================================================
- ******************************************************************************/
-package org.onap.ccsdk.features.sdnr.wt.apigateway.database.http;
-
-public class BaseHTTPResponse {
-
- public static final int CODE404 = 404;
- public static final int CODE200 = 200;
- public static final BaseHTTPResponse UNKNOWN = new BaseHTTPResponse(-1, "");
- public final int code;
- public final String body;
-
- public BaseHTTPResponse(int code,String body)
- {
- this.code=code;
- this.body=body;
- }
-
- @Override
- public String toString() {
- return "BaseHTTPResponse [code=" + code + ", body=" + body + "]";
- }
-}
diff --git a/sdnr/wt/apigateway/provider/src/main/resources/OSGI-INF/blueprint/blueprint.xml b/sdnr/wt/apigateway/provider/src/main/resources/org/opendaylight/blueprint/blueprint.xml
index 2bfb1aa84..8184d7d11 100644
--- a/sdnr/wt/apigateway/provider/src/main/resources/OSGI-INF/blueprint/blueprint.xml
+++ b/sdnr/wt/apigateway/provider/src/main/resources/org/opendaylight/blueprint/blueprint.xml
@@ -24,13 +24,4 @@ xmlns:jaxrs="http://cxf.apache.org/blueprint/jaxrs">
</service-properties>
</service>
- <bean id="msServlet"
- class="org.onap.ccsdk.features.sdnr.wt.apigateway.MsServlet">
- </bean>
-
- <service interface="javax.servlet.http.HttpServlet" ref="msServlet">
- <service-properties>
- <entry key="alias" value="/ms" />
- </service-properties>
- </service>
</blueprint>
diff --git a/sdnr/wt/apigateway/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/apigateway/test/TestDatabaseHttpClient.java b/sdnr/wt/apigateway/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/apigateway/test/TestDatabaseHttpClient.java
deleted file mode 100644
index 791e9bad0..000000000
--- a/sdnr/wt/apigateway/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/apigateway/test/TestDatabaseHttpClient.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*******************************************************************************
- * ============LICENSE_START========================================================================
- * ONAP : ccsdk feature sdnr wt
- * =================================================================================================
- * Copyright (C) 2019 highstreet technologies GmbH 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. 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.
- * ============LICENSE_END==========================================================================
- ******************************************************************************/
-package org.onap.ccsdk.features.sdnr.wt.apigateway.test;
-
-import static org.junit.Assert.*;
-import static org.mockito.Mockito.mock;
-import static org.junit.Assert.assertTrue;
-import static org.mockito.Mockito.when;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.junit.Test;
-import org.onap.ccsdk.features.sdnr.wt.apigateway.database.DatabaseEntryProvider;
-import org.onap.ccsdk.features.sdnr.wt.apigateway.database.DatabaseHttpClient;
-import org.onap.ccsdk.features.sdnr.wt.apigateway.database.MediatorServerInfo;
-import org.onap.ccsdk.features.sdnr.wt.apigateway.database.http.BaseHTTPResponse;
-
-public class TestDatabaseHttpClient {
-
- private static final String ID_1="AWwscPepjf5-TrAFEdUD";
- private static final String HOSTNAME_1="http://192.168.178.89:7070";
- private static final String NAME_1="internal mediatorserver";
- private static final String ID_2="AWwscSCWjf5-TrAFEdUE";
- private static final String HOSTNAME_2="http://192.168.178.89:7071";
- private static final String NAME_2="internal mediatorserver2";
- private static final String ID_3="AWwscSCWjf5-TrAFEdsE";
- private static final String HOSTNAME_3="http://192.168.178.88:7371";
- private static final String NAME_3="test mediatorserver2";
-
- private static final String RESPONSE_VALID="{\n" +
- "\"took\": 3,\n" +
- "\"timed_out\": false,\n" +
- "\"_shards\": {\n" +
- "\"total\": 5,\n" +
- "\"successful\": 5,\n" +
- "\"failed\": 0\n" +
- "},\n" +
- "\"hits\": {\n" +
- "\"total\": 2,\n" +
- "\"max_score\": 1,\n" +
- "\"hits\": [\n" +
- "{\n" +
- "\"_index\": \"mwtn_v1\",\n" +
- "\"_type\": \"mediator-server\",\n" +
- "\"_id\": \"AWwscPepjf5-TrAFEdUD\",\n" +
- "\"_score\": 1,\n" +
- "\"_source\": {\n" +
- "\"name\": \"internal mediatorserver\",\n" +
- "\"url\": \"http://192.168.178.89:7070\"\n" +
- "}\n" +
- "}\n" +
- ",\n" +
- "{\n" +
- "\"_index\": \"mwtn_v1\",\n" +
- "\"_type\": \"mediator-server\",\n" +
- "\"_id\": \"AWwscSCWjf5-TrAFEdUE\",\n" +
- "\"_score\": 1,\n" +
- "\"_source\": {\n" +
- "\"name\": \"internal mediatorserver2\",\n" +
- "\"url\": \"http://192.168.178.89:7071\"\n" +
- "}\n" +
- "}\n" +
- "]\n" +
- "}\n" +
- "}";
-
- private class PublicDatabaseHttpClient extends DatabaseHttpClient{
-
- public PublicDatabaseHttpClient(String base, boolean trustAllCerts) {
- super(base, trustAllCerts);
- }
- @Override
- public BaseHTTPResponse sendRequest(String uri, String method, String body, Map<String, String> headers) {
- return new BaseHTTPResponse(200, RESPONSE_VALID);
- }
- }
- public class PublicDatabaseEntryProvider extends DatabaseEntryProvider {
-
- protected PublicDatabaseEntryProvider() {
- super(new PublicDatabaseHttpClient("http://localhost/",false), 60);
- }
-
- }
- @Test
- public void test() {
-
- final PublicDatabaseHttpClient client = new PublicDatabaseHttpClient("http://localhost/",false);
- Map<String, MediatorServerInfo> entries = client.requestEntries();
- assertEquals("result size is not correct",2,entries.size());
- assertEquals("hostname 1 is not correct",HOSTNAME_1,entries.get(ID_1).getHost());
- assertEquals("name 1 is not correct",NAME_1,entries.get(ID_1).getName());
- assertEquals("hostname 2 is not correct",HOSTNAME_2,entries.get(ID_2).getHost());
- assertEquals("name 2 is not correct",NAME_2,entries.get(ID_2).getName());
- }
- @Test
- public void test2() {
- final PublicDatabaseEntryProvider provider = new PublicDatabaseEntryProvider();
- boolean reloaded = provider.triggerReloadSync();
- assertTrue("data were not reloaded",reloaded);
- try {
- Thread.sleep(1500);
- } catch (InterruptedException e) {
- Thread.interrupted();
- }
-
- System.out.println(provider.printEntries());
- assertEquals("provider has not loaded data",HOSTNAME_1,provider.getHostUrl(ID_1));
- assertEquals("provider has not loaded data",HOSTNAME_2,provider.getHostUrl(ID_2));
- Map<String, MediatorServerInfo> entries2 = new HashMap<String,MediatorServerInfo>();
- entries2.put(ID_3, new MediatorServerInfo(NAME_3, HOSTNAME_3));
- provider.setEntries(entries2);
- assertEquals("provider has not loaded data",HOSTNAME_3,provider.getHostUrl(ID_3));
- try {
- provider.close();
- } catch (Exception e) {
-
- }
-
-
- }
-}
diff --git a/sdnr/wt/apigateway/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/apigateway/test/TestHttpClient.java b/sdnr/wt/apigateway/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/apigateway/test/TestHttpClient.java
deleted file mode 100644
index 18e84853a..000000000
--- a/sdnr/wt/apigateway/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/apigateway/test/TestHttpClient.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * ============LICENSE_START========================================================================
- * ONAP : ccsdk feature sdnr wt
- * =================================================================================================
- * Copyright (C) 2019 highstreet technologies GmbH 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. 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.
- * ============LICENSE_END==========================================================================
- ******************************************************************************/
-package org.onap.ccsdk.features.sdnr.wt.apigateway.test;
-
-import static org.junit.Assert.fail;
-
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.onap.ccsdk.features.sdnr.wt.apigateway.database.http.BaseHTTPClient;
-import org.onap.ccsdk.features.sdnr.wt.apigateway.test.helper.HelpServletBase;
-
-public class TestHttpClient {
-
- private static final int PORT =40010;
- private static final String BASEURI = "/test";
-
- private class TestBaseHTTPClient extends BaseHTTPClient {
- public TestBaseHTTPClient() {
- super(String.format("http://localhost:%s%s",PORT,BASEURI));
- }
- public void doTest() {
- String[] methods=new String[] {"GET","POST","PUT","DELETE"};
- Map<String, String> headers=new HashMap<String,String>();
- headers.put("Content-Type","application/json");
- headers.put("Authorization",BaseHTTPClient.getAuthorizationHeaderValue("admin","admin"));
- for(String method:methods) {
- try {
- this.sendRequest(String.format("%s%s", BASEURI,"/abc"), method, "abddef", headers);
- } catch (IOException e) {
- e.printStackTrace();
- fail(String.format("problem with method %s: %s",method,e.getMessage()));
- }
- }
- }
- }
- @Test
- public void test() {
- TestBaseHTTPClient client = new TestBaseHTTPClient();
- client.doTest();
- }
-
-
- @Before
- public void init() throws IOException{
- HelpServletBase.initEsTestWebserver(PORT);
- }
- @After
- public void deinit() {
- HelpServletBase.stopTestWebserver();
- }
-}
diff --git a/sdnr/wt/apigateway/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/apigateway/test/TestMediatorServerServlet.java b/sdnr/wt/apigateway/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/apigateway/test/TestMediatorServerServlet.java
deleted file mode 100644
index 2a6f196bd..000000000
--- a/sdnr/wt/apigateway/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/apigateway/test/TestMediatorServerServlet.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * ONAP : CCSDK.apps.sdnr.wt.apigateway
- * ================================================================================
- * Copyright (C) 2018 highstreet technologies GmbH 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.
- * 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.
- * ============LICENSE_END=========================================================
- */
-package org.onap.ccsdk.features.sdnr.wt.apigateway.test;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.servlet.ServletException;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.onap.ccsdk.features.sdnr.wt.apigateway.MyProperties;
-import org.onap.ccsdk.features.sdnr.wt.apigateway.database.MediatorServerInfo;
-import org.onap.ccsdk.features.sdnr.wt.apigateway.test.helper.HelpMsServlet;
-import org.onap.ccsdk.features.sdnr.wt.apigateway.test.helper.HelpServletBase;
-
-public class TestMediatorServerServlet extends HelpServletBase {
-
- private static final int PORT = 40004;
-
- public TestMediatorServerServlet() {
- super("/ms", PORT);
- }
-
- @Test
- public void test() throws ServletException, IOException {
-
- String tmpFilename = "tmp3.cfg";
- File tmpFile = new File(tmpFilename);
- if (tmpFile.exists()) {
- tmpFile.delete();
- }
- MyProperties.Instantiate(tmpFile, true);
- String query = "{\"query\":{\"match_all\":{}}}";
- HelpMsServlet servlet = new HelpMsServlet();
- this.setServlet(servlet);
- // test diabled message
- servlet.setOfflineStatus(true);
- servlet.setBaseUrl("http://localhost:" + PORT);
- String expectedResponse = "offline";
- testrequest(HTTPMETHOD_GET, query, expectedResponse, false);
- testrequest(HTTPMETHOD_POST, query, expectedResponse, false);
- testrequest(HTTPMETHOD_PUT, query, expectedResponse, false);
- testrequest(HTTPMETHOD_DELETE, query, expectedResponse, false);
-
- servlet.setOfflineStatus(false);
- Map<String, MediatorServerInfo> entries = new HashMap<String,MediatorServerInfo>();
- entries.put("123", new MediatorServerInfo("1", "http://localhost:" + PORT));
- servlet.setMediatorEntries(entries);
- testrequest("/123/test/abc",HTTPMETHOD_GET, query, HelpMsServlet.RESPONSE_GET, true);
- testrequest("/123/test/abc",HTTPMETHOD_POST, query, HelpMsServlet.RESPONSE_POST, true);
- testrequest("/123/test/abc",HTTPMETHOD_PUT, query, HelpMsServlet.RESPONSE_PUT, true);
- testrequest("/123/test/abc",HTTPMETHOD_DELETE, query, HelpMsServlet.RESPONSE_DELETE, true);
- testrequest("/123/test/abc",HTTPMETHOD_OPTIONS, query, "", false);
-
- if (tmpFile.exists()) {
- tmpFile.delete();
- }
-
- }
- @Before
- public void init() throws IOException{
- HelpServletBase.initEsTestWebserver(PORT,"/test");
- }
- @After
- public void deinit() {
- HelpServletBase.stopTestWebserver();
- }
-
-}
diff --git a/sdnr/wt/apigateway/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/apigateway/test/TestQueryCallback.java b/sdnr/wt/apigateway/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/apigateway/test/TestQueryCallback.java
deleted file mode 100644
index 3340ec66c..000000000
--- a/sdnr/wt/apigateway/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/apigateway/test/TestQueryCallback.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************
- * ============LICENSE_START========================================================================
- * ONAP : ccsdk feature sdnr wt
- * =================================================================================================
- * Copyright (C) 2019 highstreet technologies GmbH 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. 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.
- * ============LICENSE_END==========================================================================
- ******************************************************************************/
-package org.onap.ccsdk.features.sdnr.wt.apigateway.test;
-
-import static org.junit.Assert.*;
-
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.IOException;
-
-import javax.servlet.ServletException;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.onap.ccsdk.features.sdnr.wt.apigateway.EsServlet.IRequestCallback;
-import org.onap.ccsdk.features.sdnr.wt.apigateway.MyProperties;
-import org.onap.ccsdk.features.sdnr.wt.apigateway.test.helper.HelpEsServlet;
-import org.onap.ccsdk.features.sdnr.wt.apigateway.test.helper.HelpServletBase;
-
-public class TestQueryCallback extends HelpServletBase{
-
- private static final int PORT = 40011;
-
- public TestQueryCallback() {
- super("/database",PORT);
- }
-
- final String LR = "\n";
-
-
- private boolean hasCallback=false;
-
- @Test
- public void test() throws ServletException, IOException {
-
- String tmpFilename = "tmp1.cfg";
- File tmpFile = new File(tmpFilename);
- if (tmpFile.exists())
- tmpFile.delete();
- MyProperties properties = MyProperties.Instantiate(tmpFile,true);
- String query = "{\"query\":{\"match_all\":{}}}";
- String tmpconfigcontent2 = "aai=off" + LR + "aaiHeaders=[]" + LR + "database=http://" + HOST + ":" + PORT + LR
- + "insecure=1" + LR + "cors=1";
- HelpEsServlet servlet = new HelpEsServlet();
- this.setServlet(servlet);
- HelpEsServlet.registerRequestCallback("/mwtn/mediator-server", new IRequestCallback() {
-
- @Override
- public void onRequest(String uri, String method) {
- hasCallback=true;
-
- }
- });
- properties.load(new ByteArrayInputStream(tmpconfigcontent2.getBytes()));
- testrequest("/database/mwtn/mediator-server/_search",HTTPMETHOD_POST, query, HelpEsServlet.RESPONSE_POST, true);
- int wait=10;
- while(wait-->0) {
- if(hasCallback) {
- break;
- }
- try {
- Thread.sleep(1000);
- } catch (InterruptedException e) {
- Thread.interrupted();
- }
- }
- assertTrue("no request callback received",hasCallback);
- hasCallback=false;
- testrequest("/database/mwtn/mediatr-server/_search",HTTPMETHOD_POST, query, HelpEsServlet.RESPONSE_POST, true);
- wait=5;
- while(wait-->0) {
- if(hasCallback) {
- break;
- }
- try {
- Thread.sleep(1000);
- } catch (InterruptedException e) {
- Thread.interrupted();
- }
- }
- assertFalse("received request callback",hasCallback);
-
-
-
- if (tmpFile.exists())
- tmpFile.delete();
-
-
- }
- @Before
- public void init() throws IOException{
- HelpServletBase.initEsTestWebserver(PORT,"/database");
- }
- @After
- public void deinit() {
- HelpServletBase.stopTestWebserver();
- }
-
-}
diff --git a/sdnr/wt/apigateway/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/apigateway/test/helper/HelpMsServlet.java b/sdnr/wt/apigateway/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/apigateway/test/helper/HelpMsServlet.java
deleted file mode 100644
index 344dff671..000000000
--- a/sdnr/wt/apigateway/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/apigateway/test/helper/HelpMsServlet.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * ONAP : CCSDK.apps.sdnr.wt.apigateway
- * ================================================================================
- * Copyright (C) 2018 highstreet technologies GmbH 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.
- * 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.
- * ============LICENSE_END=========================================================
- */
-package org.onap.ccsdk.features.sdnr.wt.apigateway.test.helper;
-
-import java.io.IOException;
-import java.util.Map;
-
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.onap.ccsdk.features.sdnr.wt.apigateway.MsServlet;
-import org.onap.ccsdk.features.sdnr.wt.apigateway.database.MediatorServerInfo;
-
-public class HelpMsServlet extends MsServlet implements IPublicServlet {
-
- public static final String RESPONSE_GET = "This is the response get";
- public static final String RESPONSE_POST = "This is the response post";
- public static final String RESPONSE_PUT = "This is the response put";
- public static final String RESPONSE_DELETE = "This is the response delete";
- public static final String RESPONSE_OPTIONS = "This is the response options";
- private boolean offline = true;
- private String baseurl;
-
- @Override
- public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
- super.doGet(req, resp);
- }
-
- @Override
- public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
- super.doPost(req, resp);
- }
-
- @Override
- public void doPut(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
- super.doPut(req, resp);
- }
-
- @Override
- public void doOptions(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
- super.doOptions(req, resp);
- }
-
- @Override
- public void doDelete(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
- super.doDelete(req, resp);
- }
-
- public void setOfflineStatus(boolean offline) {
- this.offline = offline;
- }
-
- public void setBaseUrl(String url) {
- this.baseurl = url;
- }
-
- @Override
- protected boolean isOff() {
- return this.offline;
- }
-
- @Override
- protected String getBaseUrl(String dbServerId) {
- return this.baseurl;
- }
- public void setMediatorEntries(Map<String, MediatorServerInfo> entries) {
- this.getEntryProvider().setEntries(entries);
- }
-}