summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMichal Banka <michal.banka@nokia.com>2020-09-14 23:04:37 +0200
committerMichal Banka <michal.banka@nokia.com>2020-09-15 11:26:56 +0200
commit80a8297a4b84eb33a0f77e9a56283e3c8fb5f929 (patch)
treefc41e3f0c6d95500feab2c764a5bd91dc9d28918 /src
parent9872f0081fa4aec5e41b89fc9a5fe3d4cd19d5c9 (diff)
Fix bug throwing exception when first event is collected
- Problem: When running app from jar (e.g. in docker env) ClassLoader badly interprete classpath as root of app jar, while resources are located in jar under BOOT-INF/classes/ in Spring Boot apps. - Solution: Moved file from resources to etc directory so ClassLoader isn't needed. Filepath of api_version_description.json which previously was badly resolved now is configured in collector.properties. Change-Id: I690394cc59e16c95f5902045efc3fdaf13bf9112 Signed-off-by: Michal Banka <michal.banka@nokia.com> Issue-ID: DCAEGEN2-2426
Diffstat (limited to 'src')
-rw-r--r--src/main/java/org/onap/dcae/ApplicationSettings.java4
-rw-r--r--src/main/java/org/onap/dcae/common/HeaderUtils.java40
-rw-r--r--src/main/java/org/onap/dcae/restapi/VesRestController.java2
-rw-r--r--src/main/resources/api_version_config.json7
-rw-r--r--src/test/java/org/onap/dcae/common/JsonDataLoader.java10
-rw-r--r--src/test/java/org/onap/dcae/restapi/VesRestControllerTest.java4
6 files changed, 29 insertions, 38 deletions
diff --git a/src/main/java/org/onap/dcae/ApplicationSettings.java b/src/main/java/org/onap/dcae/ApplicationSettings.java
index 7d5c7db2..9462a380 100644
--- a/src/main/java/org/onap/dcae/ApplicationSettings.java
+++ b/src/main/java/org/onap/dcae/ApplicationSettings.java
@@ -196,6 +196,10 @@ public class ApplicationSettings {
return eventTransformations;
}
+ public String getApiVersionDescriptionFilepath() {
+ return properties.getString("collector.description.api.version.location", "etc/api_version_description.json");
+ }
+
private void loadPropertiesFromFile() {
try {
properties.load(configurationFileLocation);
diff --git a/src/main/java/org/onap/dcae/common/HeaderUtils.java b/src/main/java/org/onap/dcae/common/HeaderUtils.java
index c046fb4c..81277d07 100644
--- a/src/main/java/org/onap/dcae/common/HeaderUtils.java
+++ b/src/main/java/org/onap/dcae/common/HeaderUtils.java
@@ -3,7 +3,7 @@
* PROJECT
* ================================================================================
* Copyright (C) 2019 VMware, Inc. All rights reserved.
- * Copyright (C) 2019 Nokia. All rights reserved.s
+ * Copyright (C) 2019-2020 Nokia. 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.
@@ -23,39 +23,33 @@ package org.onap.dcae.common;
import java.util.Collections;
import java.util.Map;
-import java.util.Objects;
import java.util.stream.Collectors;
import javax.servlet.http.HttpServletRequest;
import org.springframework.http.HttpHeaders;
import org.springframework.stereotype.Component;
/**
- * @author nil
+ * A class with methods used in HTTP header management.
*/
@Component
public class HeaderUtils {
- public String getApiVerFilePath(String fileName) {
- return Objects.requireNonNull(ClassLoader.getSystemClassLoader().getResource(fileName))
- .getPath();
- }
+ public String getRestApiIdentify(String uri) {
+ return isBatchRequest(uri) ? "eventListener_eventBatch" : "eventListener";
+ }
- public String getRestApiIdentify(String uri) {
- return isBatchRequest(uri) ? "eventListener_eventBatch" : "eventListener";
- }
+ public Map<String, String> extractHeaders(HttpServletRequest request) {
+ return Collections.list(request.getHeaderNames()).stream()
+ .collect(Collectors.toMap(h -> h, request::getHeader));
+ }
- public Map<String, String> extractHeaders(HttpServletRequest request) {
- return Collections.list(request.getHeaderNames()).stream()
- .collect(Collectors.toMap(h -> h, request::getHeader));
- }
+ public HttpHeaders fillHeaders(Map<String, String> headers) {
+ HttpHeaders httpHeaders = new HttpHeaders();
+ httpHeaders.setAll(headers);
+ return httpHeaders;
+ }
- public HttpHeaders fillHeaders(Map<String, String> headers) {
- HttpHeaders httpHeaders = new HttpHeaders();
- httpHeaders.setAll(headers);
- return httpHeaders;
- }
-
- private boolean isBatchRequest(String request) {
- return request.contains("eventBatch");
- }
+ private boolean isBatchRequest(String request) {
+ return request.contains("eventBatch");
+ }
}
diff --git a/src/main/java/org/onap/dcae/restapi/VesRestController.java b/src/main/java/org/onap/dcae/restapi/VesRestController.java
index de0392e6..0a5930f6 100644
--- a/src/main/java/org/onap/dcae/restapi/VesRestController.java
+++ b/src/main/java/org/onap/dcae/restapi/VesRestController.java
@@ -137,7 +137,7 @@ public class VesRestController {
private CustomHeaderUtils createHeaderUtils(String version, HttpServletRequest request) {
return new CustomHeaderUtils(version.toLowerCase().replace("v", ""),
headerUtils.extractHeaders(request),
- headerUtils.getApiVerFilePath("api_version_config.json"),
+ settings.getApiVersionDescriptionFilepath(),
headerUtils.getRestApiIdentify(request.getRequestURI()));
}
diff --git a/src/main/resources/api_version_config.json b/src/main/resources/api_version_config.json
deleted file mode 100644
index 23f585f9..00000000
--- a/src/main/resources/api_version_config.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "apiVersion":
- {
- "eventListener": ["4.7.2","5.4.1","7.0.1"],
- "eventListener_eventBatch": ["4.7.2","5.4.1","7.0.1"]
- }
-}
diff --git a/src/test/java/org/onap/dcae/common/JsonDataLoader.java b/src/test/java/org/onap/dcae/common/JsonDataLoader.java
index 2ea59aa0..8c2fdd6d 100644
--- a/src/test/java/org/onap/dcae/common/JsonDataLoader.java
+++ b/src/test/java/org/onap/dcae/common/JsonDataLoader.java
@@ -20,7 +20,9 @@
package org.onap.dcae.common;
import java.io.IOException;
+import java.net.URL;
import java.nio.file.Files;
+import java.nio.file.Path;
import java.nio.file.Paths;
/**
@@ -35,15 +37,15 @@ public final class JsonDataLoader {
}
/**
- * This method is validating given event using schema adn throws exception if event is not valid
+ * This method is validating given event using schema and throws exception when event is invalid
*
* @param path to file that will be loaded
* @return contend of the file located under path, given in parameters, as string
* @throws IOException when file under given path was not found
*/
public static String loadContent(String path) throws IOException {
- return new String(
- Files.readAllBytes(Paths.get(JsonDataLoader.class.getResource(path).getPath()))
- );
+ URL resource = JsonDataLoader.class.getResource(path);
+ Path resourcePath = Paths.get(resource.getPath());
+ return new String(Files.readAllBytes(resourcePath));
}
}
diff --git a/src/test/java/org/onap/dcae/restapi/VesRestControllerTest.java b/src/test/java/org/onap/dcae/restapi/VesRestControllerTest.java
index 0a03c1a4..ce7e09d3 100644
--- a/src/test/java/org/onap/dcae/restapi/VesRestControllerTest.java
+++ b/src/test/java/org/onap/dcae/restapi/VesRestControllerTest.java
@@ -315,9 +315,7 @@ public class VesRestControllerTest {
private void configureHeadersForEventListener() {
when(headerUtils.getRestApiIdentify(anyString())).thenReturn("eventListener");
- when(headerUtils.getApiVerFilePath(anyString())).thenReturn(
- this.getClass().getResource("/api_version_config.json").getPath()
- );
+ when(applicationSettings.getApiVersionDescriptionFilepath()).thenReturn("etc/api_version_description.json");
}
private void verifyThatTransformedEventWasSend(DMaaPEventPublisher eventPublisher, String eventBeforeTransformation) {