Async: NCMP Rest impl. including Request ID generation
[cps.git] / cps-ncmp-service / src / main / java / org / onap / cps / ncmp / api / impl / NetworkCmProxyDataServiceImpl.java
index e923ce4..76d4cef 100755 (executable)
@@ -42,11 +42,11 @@ import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.logging.log4j.util.Strings;
 import org.onap.cps.api.CpsAdminService;
 import org.onap.cps.api.CpsDataService;
 import org.onap.cps.api.CpsModuleService;
 import org.onap.cps.ncmp.api.NetworkCmProxyDataService;
+import org.onap.cps.ncmp.api.impl.exception.InvalidTopicException;
 import org.onap.cps.ncmp.api.impl.exception.ServerNcmpException;
 import org.onap.cps.ncmp.api.impl.operations.DmiDataOperations;
 import org.onap.cps.ncmp.api.impl.operations.DmiModelOperations;
@@ -303,8 +303,14 @@ public class NetworkCmProxyDataServiceImpl implements NetworkCmProxyDataService
             yangModelCmHandle.getId());
     }
 
-    private static boolean isValidTopicName(final String topicName) {
-        return Strings.isNotEmpty(topicName) && TOPIC_NAME_PATTERN.matcher(topicName).matches();
+    private static boolean hasTopicParameter(final String topicName) {
+        if (topicName == null) {
+            return false;
+        }
+        if (TOPIC_NAME_PATTERN.matcher(topicName).matches()) {
+            return true;
+        }
+        throw new InvalidTopicException("Topic name " + topicName + " is invalid", "invalid topic");
     }
 
     private Map<String, Object> buildDmiResponse(final String requestId) {
@@ -319,7 +325,7 @@ public class NetworkCmProxyDataServiceImpl implements NetworkCmProxyDataService
                                                        final DmiOperations.DataStoreEnum dataStore,
                                                        final String optionsParamInQuery,
                                                        final String topicParamInQuery) {
-        final boolean processAsynchronously = isValidTopicName(topicParamInQuery);
+        final boolean processAsynchronously = hasTopicParameter(topicParamInQuery);
         if (processAsynchronously) {
             final String resourceDataRequestId = UUID.randomUUID().toString();
             return ResponseEntity.status(HttpStatus.OK)