aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/plugins-event/plugins-event-carrier
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/plugins-event/plugins-event-carrier')
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-grpc/src/test/java/org/onap/policy/apex/plugins/event/carrier/grpc/GrpcCarrierTechnologyParametersTest.java9
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/src/main/java/org/onap/policy/apex/plugins/event/carrier/jms/JmsCarrierTechnologyParameters.java66
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/src/test/java/org/onap/policy/apex/plugins/event/carrier/jms/JmsCarrierTechnologyParametersTest.java5
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-kafka/src/main/java/org/onap/policy/apex/plugins/event/carrier/kafka/KafkaCarrierTechnologyParameters.java79
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restclient/src/main/java/org/onap/policy/apex/plugins/event/carrier/restclient/RestClientCarrierTechnologyParameters.java13
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restclient/src/test/java/org/onap/policy/apex/plugins/event/carrier/restclient/RestClientCarrierTechnologyParametersTest.java16
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restrequestor/src/test/java/org/onap/policy/apex/plugins/event/carrier/restrequestor/RestRequestorCarrierTechnologyParametersTest.java6
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/main/java/org/onap/policy/apex/plugins/event/carrier/restserver/RestServerCarrierTechnologyParameters.java21
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/test/java/org/onap/policy/apex/plugins/event/carrier/restserver/RestServerCarrierTechnologyParametersTest.java9
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/src/main/java/org/onap/policy/apex/plugins/event/carrier/websocket/WebSocketCarrierTechnologyParameters.java22
-rw-r--r--plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/src/test/java/org/onap/policy/apex/plugins/event/carrier/websocket/WebSocketCarrierTechnologyParametersTest.java5
11 files changed, 117 insertions, 134 deletions
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-grpc/src/test/java/org/onap/policy/apex/plugins/event/carrier/grpc/GrpcCarrierTechnologyParametersTest.java b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-grpc/src/test/java/org/onap/policy/apex/plugins/event/carrier/grpc/GrpcCarrierTechnologyParametersTest.java
index 480d8423b..7c79e95b6 100644
--- a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-grpc/src/test/java/org/onap/policy/apex/plugins/event/carrier/grpc/GrpcCarrierTechnologyParametersTest.java
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-grpc/src/test/java/org/onap/policy/apex/plugins/event/carrier/grpc/GrpcCarrierTechnologyParametersTest.java
@@ -1,6 +1,7 @@
/*-
* ============LICENSE_START=======================================================
* Copyright (C) 2020 Nordix Foundation.
+ * Modifications Copyright (C) 2021 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.
@@ -28,7 +29,7 @@ import org.assertj.core.api.Assertions;
import org.junit.Before;
import org.junit.Test;
import org.onap.policy.apex.service.engine.event.ApexEventException;
-import org.onap.policy.common.parameters.GroupValidationResult;
+import org.onap.policy.common.parameters.ValidationResult;
public class GrpcCarrierTechnologyParametersTest {
@@ -45,7 +46,7 @@ public class GrpcCarrierTechnologyParametersTest {
@Test
public void testGrpcCarrierTechnologyParameters_invalid_producer_params() throws ApexEventException {
- GroupValidationResult result = params.validate();
+ ValidationResult result = params.validate();
assertTrue(result.isValid());
assertThatThrownBy(() -> params.validateGrpcParameters(true))
.hasMessage("Issues in specifying gRPC Producer parameters:\ntimeout should have a positive value.\n"
@@ -64,7 +65,7 @@ public class GrpcCarrierTechnologyParametersTest {
params.setPort(2233);
params.setTimeout(1000);
params.setUsername(USERNAME);
- GroupValidationResult result = params.validate();
+ ValidationResult result = params.validate();
assertTrue(result.isValid());
Assertions.assertThatCode(() -> params.validateGrpcParameters(true)).doesNotThrowAnyException();
}
@@ -77,7 +78,7 @@ public class GrpcCarrierTechnologyParametersTest {
params.setUsername(USERNAME);
params.setPort(23); // invalid value
- GroupValidationResult result = params.validate();
+ ValidationResult result = params.validate();
assertTrue(result.isValid());
assertThatThrownBy(() -> params.validateGrpcParameters(true))
.hasMessageContaining("port range should be between 1024 and 65535");
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/src/main/java/org/onap/policy/apex/plugins/event/carrier/jms/JmsCarrierTechnologyParameters.java b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/src/main/java/org/onap/policy/apex/plugins/event/carrier/jms/JmsCarrierTechnologyParameters.java
index d93a1b981..d4647b584 100644
--- a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/src/main/java/org/onap/policy/apex/plugins/event/carrier/jms/JmsCarrierTechnologyParameters.java
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/src/main/java/org/onap/policy/apex/plugins/event/carrier/jms/JmsCarrierTechnologyParameters.java
@@ -2,6 +2,7 @@
* ============LICENSE_START=======================================================
* Copyright (C) 2016-2018 Ericsson. All rights reserved.
* Modifications Copyright (C) 2019,2021 Nordix Foundation.
+ * Modifications Copyright (C) 2021 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.
@@ -23,10 +24,10 @@ package org.onap.policy.apex.plugins.event.carrier.jms;
import java.util.Properties;
import javax.naming.Context;
-import org.apache.commons.lang3.StringUtils;
import org.onap.policy.apex.service.parameters.carriertechnology.CarrierTechnologyParameters;
-import org.onap.policy.common.parameters.GroupValidationResult;
-import org.onap.policy.common.parameters.ValidationStatus;
+import org.onap.policy.common.parameters.annotations.Min;
+import org.onap.policy.common.parameters.annotations.NotBlank;
+import org.onap.policy.common.parameters.annotations.NotNull;
/**
* Apex parameters for JMS as an event carrier technology.
@@ -100,12 +101,19 @@ public class JmsCarrierTechnologyParameters extends CarrierTechnologyParameters
// JMS carrier parameters
private String connectionFactory = DEFAULT_CONNECTION_FACTORY;
+ @NotNull @NotBlank
private String initialContextFactory = DEFAULT_INITIAL_CTXT_FACTORY;
+ @NotNull @NotBlank
private String providerUrl = DEFAULT_PROVIDER_URL;
+ @NotNull @NotBlank
private String securityPrincipal = DEFAULT_SECURITY_PRINCIPAL;
+ @NotNull @NotBlank
private String securityCredentials = DEFAULT_SECURITY_CREDENTIALS;
+ @NotNull @NotBlank
private String producerTopic = DEFAULT_PRODUCER_TOPIC;
+ @NotNull @NotBlank
private String consumerTopic = DEFAULT_CONSUMER_TOPIC;
+ @Min(0)
private int consumerWaitTime = DEFAULT_CONSUMER_WAIT_TIME;
private boolean objectMessageSending = DEFAULT_TO_OBJECT_MSG_SENDING;
// @formatter:on
@@ -327,56 +335,4 @@ public class JmsCarrierTechnologyParameters extends CarrierTechnologyParameters
public void setObjectMessageSending(final boolean objectMessageSending) {
this.objectMessageSending = objectMessageSending;
}
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public GroupValidationResult validate() {
- final GroupValidationResult result = super.validate();
-
- if (StringUtils.isBlank(initialContextFactory)) {
- result.setResult("initialContextFactory", ValidationStatus.INVALID,
- "initialContextFactory must be specified as a string that is a class that implements the "
- + "interface org.jboss.naming.remote.client.InitialContextFactory");
- }
-
- if (StringUtils.isBlank(providerUrl)) {
- result.setResult("providerUrl", ValidationStatus.INVALID,
- "providerUrl must be specified as a URL string that specifies the location of "
- + "configuration information for the service provider to use "
- + "such as remote://localhost:4447");
- }
-
- if (StringUtils.isBlank(securityPrincipal)) {
- result.setResult("securityPrincipal", ValidationStatus.INVALID,
- "securityPrincipal must be specified the identity of the principal for authenticating "
- + "the caller to the service");
- }
-
- if (StringUtils.isBlank(securityCredentials)) {
- result.setResult("securityCredentials", ValidationStatus.INVALID,
- " securityCredentials must be specified as the credentials of the "
- + "principal for authenticating the caller to the service");
- }
-
- if (StringUtils.isBlank(producerTopic)) {
- result.setResult("producerTopic", ValidationStatus.INVALID,
- " producerTopic must be a string that identifies the JMS topic "
- + "on which Apex will send events");
- }
-
- if (StringUtils.isBlank(consumerTopic)) {
- result.setResult("consumerTopic", ValidationStatus.INVALID,
- " consumerTopic must be a string that identifies the JMS topic "
- + "on which Apex will recieve events");
- }
-
- if (consumerWaitTime < 0) {
- result.setResult("consumerWaitTime", ValidationStatus.INVALID,
- "[" + consumerWaitTime + "] invalid, must be specified as consumerWaitTime >= 0");
- }
-
- return result;
- }
}
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/src/test/java/org/onap/policy/apex/plugins/event/carrier/jms/JmsCarrierTechnologyParametersTest.java b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/src/test/java/org/onap/policy/apex/plugins/event/carrier/jms/JmsCarrierTechnologyParametersTest.java
index 5f1b99500..36f2e31ce 100644
--- a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/src/test/java/org/onap/policy/apex/plugins/event/carrier/jms/JmsCarrierTechnologyParametersTest.java
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-jms/src/test/java/org/onap/policy/apex/plugins/event/carrier/jms/JmsCarrierTechnologyParametersTest.java
@@ -2,6 +2,7 @@
* ============LICENSE_START=======================================================
* Copyright (C) 2019 Samsung. All rights reserved.
* Modifications Copyright (C) 2019,2021 Nordix Foundation.
+ * Modifications Copyright (C) 2021 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.
@@ -32,15 +33,15 @@ import java.util.Properties;
import javax.naming.Context;
import org.junit.Before;
import org.junit.Test;
-import org.onap.policy.common.parameters.GroupValidationResult;
import org.onap.policy.common.parameters.ParameterRuntimeException;
+import org.onap.policy.common.parameters.ValidationResult;
public class JmsCarrierTechnologyParametersTest {
JmsCarrierTechnologyParameters jmsCarrierTechnologyParameters = null;
Properties jmsProducerProperties = null;
Properties jmsConsumerProperties = null;
- GroupValidationResult result = null;
+ ValidationResult result = null;
public static final String JMS_CARRIER_TECHNOLOGY_LABEL = "JMS";
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-kafka/src/main/java/org/onap/policy/apex/plugins/event/carrier/kafka/KafkaCarrierTechnologyParameters.java b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-kafka/src/main/java/org/onap/policy/apex/plugins/event/carrier/kafka/KafkaCarrierTechnologyParameters.java
index eb1f15c93..475017283 100644
--- a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-kafka/src/main/java/org/onap/policy/apex/plugins/event/carrier/kafka/KafkaCarrierTechnologyParameters.java
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-kafka/src/main/java/org/onap/policy/apex/plugins/event/carrier/kafka/KafkaCarrierTechnologyParameters.java
@@ -3,6 +3,7 @@
* Copyright (C) 2016-2018 Ericsson. All rights reserved.
* Modifications Copyright (C) 2019 Nordix Foundation.
* Modifications Copyright (C) 2021 Bell Canada. All rights reserved.
+ * Modifications Copyright (C) 2021 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.
@@ -25,16 +26,20 @@ package org.onap.policy.apex.plugins.event.carrier.kafka;
import java.time.Duration;
import java.util.Arrays;
import java.util.Collection;
+import java.util.List;
import java.util.Properties;
import lombok.Getter;
import lombok.Setter;
import org.apache.commons.lang3.StringUtils;
import org.apache.kafka.clients.producer.internals.DefaultPartitioner;
import org.onap.policy.apex.service.parameters.carriertechnology.CarrierTechnologyParameters;
-import org.onap.policy.common.parameters.GroupValidationResult;
+import org.onap.policy.common.parameters.BeanValidationResult;
+import org.onap.policy.common.parameters.ObjectValidationResult;
+import org.onap.policy.common.parameters.ValidationResult;
import org.onap.policy.common.parameters.ValidationStatus;
import org.onap.policy.common.parameters.annotations.Min;
import org.onap.policy.common.parameters.annotations.NotBlank;
+import org.onap.policy.models.base.Validated;
/**
* Apex parameters for Kafka as an event carrier technology.
@@ -226,68 +231,76 @@ public class KafkaCarrierTechnologyParameters extends CarrierTechnologyParameter
* {@inheritDoc}.
*/
@Override
- public GroupValidationResult validate() {
- final GroupValidationResult result = super.validate();
+ public BeanValidationResult validate() {
+ final BeanValidationResult result = super.validate();
- validateConsumerTopicList(result);
+ result.addResult(validateConsumerTopicList());
- validateKafkaProperties(result);
+ result.addResult(validateKafkaProperties());
return result;
}
/**
* Validate the consumer topic list.
- *
- * @param result the result of the validation.
*/
- private void validateConsumerTopicList(final GroupValidationResult result) {
+ private ValidationResult validateConsumerTopicList() {
if (consumerTopicList == null || consumerTopicList.length == 0) {
- result.setResult("consumerTopicList", ValidationStatus.INVALID,
+ return new ObjectValidationResult("consumerTopicList", consumerTopicList, ValidationStatus.INVALID,
"not specified, must be specified as a list of strings");
- return;
}
- StringBuilder consumerTopicStringBuilder = new StringBuilder();
+ BeanValidationResult result = new BeanValidationResult("consumerTopicList", consumerTopicList);
+ int item = 0;
for (final String consumerTopic : consumerTopicList) {
if (StringUtils.isBlank(consumerTopic)) {
- consumerTopicStringBuilder.append(consumerTopic + "/");
+ result.addResult(ENTRY + item, consumerTopic, ValidationStatus.INVALID, Validated.IS_BLANK);
}
+
+ ++item;
}
- if (consumerTopicStringBuilder.length() > 0) {
- result.setResult("consumerTopicList", ValidationStatus.INVALID,
- "invalid consumer topic list entries found: /" + consumerTopicStringBuilder.toString());
- }
+
+ return result;
}
/**
* Validate the kafka properties.
- *
- * @param result the result of the validation.
*/
- private void validateKafkaProperties(final GroupValidationResult result) {
+ private ValidationResult validateKafkaProperties() {
// Kafka properties are optional
if (kafkaProperties == null || kafkaProperties.length == 0) {
- return;
+ return null;
}
- for (int i = 0; i < kafkaProperties.length; i++) {
- if (kafkaProperties[i].length != 2) {
- result.setResult(KAFKA_PROPERTIES, ValidationStatus.INVALID,
- ENTRY + i + " invalid, kafka properties must be name-value pairs");
- }
+ BeanValidationResult result = new BeanValidationResult(KAFKA_PROPERTIES, kafkaProperties);
- if (StringUtils.isBlank(kafkaProperties[i][0])) {
- result.setResult(KAFKA_PROPERTIES, ValidationStatus.INVALID,
- ENTRY + i + " invalid, key is null or blank");
+ for (int i = 0; i < kafkaProperties.length; i++) {
+ final String label = ENTRY + i;
+ final String[] kafkaProperty = kafkaProperties[i];
+ final List<String> value = (kafkaProperty == null ? null : Arrays.asList(kafkaProperty));
+ final BeanValidationResult result2 = new BeanValidationResult(label, value);
+
+ if (kafkaProperty == null) {
+ // note: add to result, not result2
+ result.addResult(label, value, ValidationStatus.INVALID, Validated.IS_NULL);
+
+ } else if (kafkaProperty.length != 2) {
+ // note: add to result, not result2
+ result.addResult(label, Arrays.asList(kafkaProperty), ValidationStatus.INVALID,
+ "kafka properties must be name-value pairs");
+
+ } else if (StringUtils.isBlank(kafkaProperty[0])) {
+ result2.addResult("key", kafkaProperty[0], ValidationStatus.INVALID, Validated.IS_BLANK);
+
+ } else if (null == kafkaProperty[1]) {
+ // the value of a property has to be specified as empty in some cases, but should never be null.
+ result2.addResult("value", kafkaProperty[1], ValidationStatus.INVALID, Validated.IS_NULL);
}
- // the value of a property has to be specified as empty in some cases, but should never be null.
- if (null == kafkaProperties[i][1]) {
- result.setResult(KAFKA_PROPERTIES, ValidationStatus.INVALID,
- ENTRY + i + " invalid, value is null");
- }
+ result.addResult(result2);
}
+
+ return result;
}
/**
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restclient/src/main/java/org/onap/policy/apex/plugins/event/carrier/restclient/RestClientCarrierTechnologyParameters.java b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restclient/src/main/java/org/onap/policy/apex/plugins/event/carrier/restclient/RestClientCarrierTechnologyParameters.java
index d5bca3f5a..23936439a 100644
--- a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restclient/src/main/java/org/onap/policy/apex/plugins/event/carrier/restclient/RestClientCarrierTechnologyParameters.java
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restclient/src/main/java/org/onap/policy/apex/plugins/event/carrier/restclient/RestClientCarrierTechnologyParameters.java
@@ -2,6 +2,7 @@
* ============LICENSE_START=======================================================
* Copyright (C) 2016-2018 Ericsson. All rights reserved.
* Modifications Copyright (C) 2019-2020 Nordix Foundation.
+ * Modifications Copyright (C) 2021 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.
@@ -24,7 +25,8 @@ package org.onap.policy.apex.plugins.event.carrier.restclient;
import lombok.Getter;
import lombok.Setter;
import org.onap.policy.apex.service.parameters.carriertechnology.RestPluginCarrierTechnologyParameters;
-import org.onap.policy.common.parameters.GroupValidationResult;
+import org.onap.policy.common.parameters.ObjectValidationResult;
+import org.onap.policy.common.parameters.ValidationResult;
import org.onap.policy.common.parameters.ValidationStatus;
// @formatter:off
@@ -66,14 +68,13 @@ public class RestClientCarrierTechnologyParameters extends RestPluginCarrierTech
* {@inheritDoc}
*/
@Override
- public GroupValidationResult validateUrl(final GroupValidationResult result) {
+ public ValidationResult validateUrl() {
// Check if the URL has been set for event output
- final String urlNullMessage = "no URL has been set for event sending on " + getLabel();
if (getUrl() == null) {
- result.setResult("url", ValidationStatus.INVALID, urlNullMessage);
- return result;
+ final String urlNullMessage = "no URL has been set for event sending on " + getLabel();
+ return new ObjectValidationResult("url", null, ValidationStatus.INVALID, urlNullMessage);
}
- return super.validateUrl(result);
+ return super.validateUrl();
}
}
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restclient/src/test/java/org/onap/policy/apex/plugins/event/carrier/restclient/RestClientCarrierTechnologyParametersTest.java b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restclient/src/test/java/org/onap/policy/apex/plugins/event/carrier/restclient/RestClientCarrierTechnologyParametersTest.java
index 9d4da1cd0..58d265a97 100644
--- a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restclient/src/test/java/org/onap/policy/apex/plugins/event/carrier/restclient/RestClientCarrierTechnologyParametersTest.java
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restclient/src/test/java/org/onap/policy/apex/plugins/event/carrier/restclient/RestClientCarrierTechnologyParametersTest.java
@@ -3,6 +3,7 @@
* Copyright (C) 2018 Ericsson. All rights reserved.
* Modifications Copyright (C) 2019-2020 Nordix Foundation.
* Modifications Copyright (C) 2020 Bell Canada. All rights reserved.
+ * Modifications Copyright (C) 2021 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.
@@ -47,7 +48,10 @@ public class RestClientCarrierTechnologyParametersTest {
arguments.setRelativeFileRoot(".");
assertThatThrownBy(() -> new ApexParameterHandler().getParameters(arguments))
- .hasMessageContaining("HTTP header array entry is null\n parameter");
+ .hasMessageContaining("httpHeaders")
+ .hasMessageContaining("item \"entry 0\" value \"null\" INVALID, is null")
+ .hasMessageContaining("item \"entry 1\" value \"null\" INVALID, is null")
+ .hasMessageContaining("item \"entry 2\" value \"null\" INVALID, is null");
}
@Test
@@ -57,8 +61,9 @@ public class RestClientCarrierTechnologyParametersTest {
arguments.setRelativeFileRoot(".");
assertThatThrownBy(() -> new ApexParameterHandler().getParameters(arguments))
- .hasMessageContaining("HTTP header array entries must have one key and one value: [aaa, bbb, ccc]")
- .hasMessageEndingWith("HTTP header array entries must have one key and one value: [aaa]\n");
+ .hasMessageContaining("httpHeaders")
+ .hasMessageContaining("\"entry 0\" value \"[aaa, bbb, ccc]\" INVALID, must have one key and one value")
+ .hasMessageContaining("\"entry 0\" value \"[aaa]\" INVALID, must have one key and one value");
}
@Test
@@ -68,8 +73,9 @@ public class RestClientCarrierTechnologyParametersTest {
arguments.setRelativeFileRoot(".");
assertThatThrownBy(() -> new ApexParameterHandler().getParameters(arguments))
- .hasMessageContaining("HTTP header key is null or blank: [null, bbb]")
- .hasMessageEndingWith("HTTP header value is null or blank: [ccc, null]\n");
+ .hasMessageContaining("httpHeaders", "entry 0", "entry 1")
+ .hasMessageContaining("item \"key\" value \"null\" INVALID, is blank")
+ .hasMessageContaining("item \"value\" value \"null\" INVALID, is blank");
}
@Test
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restrequestor/src/test/java/org/onap/policy/apex/plugins/event/carrier/restrequestor/RestRequestorCarrierTechnologyParametersTest.java b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restrequestor/src/test/java/org/onap/policy/apex/plugins/event/carrier/restrequestor/RestRequestorCarrierTechnologyParametersTest.java
index d5268b14c..f17721bdc 100644
--- a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restrequestor/src/test/java/org/onap/policy/apex/plugins/event/carrier/restrequestor/RestRequestorCarrierTechnologyParametersTest.java
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restrequestor/src/test/java/org/onap/policy/apex/plugins/event/carrier/restrequestor/RestRequestorCarrierTechnologyParametersTest.java
@@ -43,19 +43,19 @@ public class RestRequestorCarrierTechnologyParametersTest {
@Test
public void testRestRequestorCarrierTechnologyParametersBadList() {
verifyException("src/test/resources/prodcons/RESTRequestorWithHTTPHeaderBadList.json",
- "HTTP header array entry is null\n parameter");
+ "item \"entry 2\" value \"null\" INVALID, is null");
}
@Test
public void testRestRequestorCarrierTechnologyParametersNotKvPairs() {
verifyException("src/test/resources/prodcons/RESTRequestorWithHTTPHeaderNotKvPairs.json",
- "HTTP header array entries must have one key and one value: [aaa, bbb, ccc]");
+ "item \"entry 0\" value \"[aaa, bbb, ccc]\" INVALID, must have one key");
}
@Test
public void testRestRequestorCarrierTechnologyParametersNulls() {
verifyException("src/test/resources/prodcons/RESTRequestorWithHTTPHeaderNulls.json",
- "HTTP header key is null or blank: [null, bbb]");
+ "\"key\"");
}
private void verifyException(String fileName, String expectedMsg) {
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/main/java/org/onap/policy/apex/plugins/event/carrier/restserver/RestServerCarrierTechnologyParameters.java b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/main/java/org/onap/policy/apex/plugins/event/carrier/restserver/RestServerCarrierTechnologyParameters.java
index afc07da95..bf24d2260 100644
--- a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/main/java/org/onap/policy/apex/plugins/event/carrier/restserver/RestServerCarrierTechnologyParameters.java
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/main/java/org/onap/policy/apex/plugins/event/carrier/restserver/RestServerCarrierTechnologyParameters.java
@@ -2,6 +2,7 @@
* ============LICENSE_START=======================================================
* Copyright (C) 2016-2018 Ericsson. All rights reserved.
* Modifications Copyright (C) 2019 Nordix Foundation.
+ * Modifications Copyright (C) 2021 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.
@@ -24,9 +25,11 @@ package org.onap.policy.apex.plugins.event.carrier.restserver;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.Setter;
+import org.apache.commons.lang3.StringUtils;
import org.onap.policy.apex.service.parameters.carriertechnology.CarrierTechnologyParameters;
-import org.onap.policy.common.parameters.GroupValidationResult;
+import org.onap.policy.common.parameters.BeanValidationResult;
import org.onap.policy.common.parameters.ValidationStatus;
+import org.onap.policy.models.base.Validated;
/**
* Apex parameters for REST as an event carrier technology with Apex as a REST client.
@@ -89,27 +92,25 @@ public class RestServerCarrierTechnologyParameters extends CarrierTechnologyPara
* {@inheritDoc}.
*/
@Override
- public GroupValidationResult validate() {
- final GroupValidationResult result = super.validate();
+ public BeanValidationResult validate() {
+ final BeanValidationResult result = super.validate();
// Check if host is defined, it is only defined on REST server consumers
if (standalone) {
- if (host != null && host.trim().length() == 0) {
- result.setResult("host", ValidationStatus.INVALID,
- "host not specified, host must be specified as a string");
+ if (StringUtils.isBlank(host)) {
+ result.addResult("host", host, ValidationStatus.INVALID, Validated.IS_BLANK);
}
// Check if port is defined, it is only defined on REST server consumers
if (port != -1 && port < MIN_USER_PORT || port > MAX_USER_PORT) {
- result.setResult("port", ValidationStatus.INVALID,
- "[" + port + "] invalid, must be specified as 1024 <= port <= 65535");
+ result.addResult("port", port, ValidationStatus.INVALID, "must be between 1024 and 65535");
}
} else {
if (host != null) {
- result.setResult("host", ValidationStatus.INVALID, "host is specified only in standalone mode");
+ result.addResult("host", host, ValidationStatus.INVALID, "should be specified only in standalone mode");
}
if (port != -1) {
- result.setResult("port", ValidationStatus.INVALID, "port is specified only in standalone mode");
+ result.addResult("port", port, ValidationStatus.INVALID, "should be specified only in standalone mode");
}
}
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/test/java/org/onap/policy/apex/plugins/event/carrier/restserver/RestServerCarrierTechnologyParametersTest.java b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/test/java/org/onap/policy/apex/plugins/event/carrier/restserver/RestServerCarrierTechnologyParametersTest.java
index 2c8a764e8..ef78d3211 100644
--- a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/test/java/org/onap/policy/apex/plugins/event/carrier/restserver/RestServerCarrierTechnologyParametersTest.java
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restserver/src/test/java/org/onap/policy/apex/plugins/event/carrier/restserver/RestServerCarrierTechnologyParametersTest.java
@@ -2,6 +2,7 @@
* ============LICENSE_START=======================================================
* Copyright (C) 2019 Samsung. All rights reserved.
* Modifications Copyright (C) 2019 Nordix Foundation.
+ * Modifications Copyright (C) 2021 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.
@@ -21,6 +22,7 @@
package org.onap.policy.apex.plugins.event.carrier.restserver;
+import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
@@ -28,12 +30,12 @@ import static org.junit.Assert.assertTrue;
import java.lang.reflect.Field;
import org.junit.Before;
import org.junit.Test;
-import org.onap.policy.common.parameters.GroupValidationResult;
+import org.onap.policy.common.parameters.ValidationResult;
public class RestServerCarrierTechnologyParametersTest {
RestServerCarrierTechnologyParameters restServerCarrierTechnologyParameters = null;
- GroupValidationResult result = null;
+ ValidationResult result = null;
/**
* Set up testing.
@@ -144,7 +146,6 @@ public class RestServerCarrierTechnologyParametersTest {
result = restServerCarrierTechnologyParameters.validate();
assertNotNull(result);
assertFalse(result.isValid());
- assertTrue(result.getResult().contains("host is specified only in standalone mode"));
- assertTrue(result.getResult().contains("port is specified only in standalone mode"));
+ assertThat(result.getResult()).contains("host", "port", "should be specified only in standalone mode");
}
}
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/src/main/java/org/onap/policy/apex/plugins/event/carrier/websocket/WebSocketCarrierTechnologyParameters.java b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/src/main/java/org/onap/policy/apex/plugins/event/carrier/websocket/WebSocketCarrierTechnologyParameters.java
index c77aac9a9..f867020ec 100644
--- a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/src/main/java/org/onap/policy/apex/plugins/event/carrier/websocket/WebSocketCarrierTechnologyParameters.java
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/src/main/java/org/onap/policy/apex/plugins/event/carrier/websocket/WebSocketCarrierTechnologyParameters.java
@@ -1,6 +1,7 @@
/*-
* ============LICENSE_START=======================================================
* Copyright (C) 2016-2018 Ericsson. All rights reserved.
+ * Modifications Copyright (C) 2021 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.
@@ -20,9 +21,13 @@
package org.onap.policy.apex.plugins.event.carrier.websocket;
+import org.apache.commons.lang3.StringUtils;
import org.onap.policy.apex.service.parameters.carriertechnology.CarrierTechnologyParameters;
-import org.onap.policy.common.parameters.GroupValidationResult;
+import org.onap.policy.common.parameters.BeanValidationResult;
import org.onap.policy.common.parameters.ValidationStatus;
+import org.onap.policy.common.parameters.annotations.Max;
+import org.onap.policy.common.parameters.annotations.Min;
+import org.onap.policy.models.base.Validated;
/**
* Apex parameters for Kafka as an event carrier technology.
@@ -50,6 +55,8 @@ public class WebSocketCarrierTechnologyParameters extends CarrierTechnologyParam
// Web socket parameters
private boolean wsClient = true;
private String host = DEFAULT_HOST;
+ @Min(MIN_USER_PORT)
+ @Max(MAX_USER_PORT)
private int port = DEFAULT_PORT;
// @formatter:on
@@ -97,16 +104,11 @@ public class WebSocketCarrierTechnologyParameters extends CarrierTechnologyParam
* {@inheritDoc}.
*/
@Override
- public GroupValidationResult validate() {
- final GroupValidationResult result = super.validate();
+ public BeanValidationResult validate() {
+ final BeanValidationResult result = super.validate();
- if (wsClient && (host == null || host.trim().length() == 0)) {
- result.setResult("host", ValidationStatus.INVALID, "host not specified, must be host as a string");
- }
-
- if (port < MIN_USER_PORT || port > MAX_USER_PORT) {
- result.setResult("port", ValidationStatus.INVALID,
- "[" + port + "] invalid, must be specified as 1024 <= port <= 65535");
+ if (wsClient && StringUtils.isBlank(host)) {
+ result.addResult("host", host, ValidationStatus.INVALID, Validated.IS_BLANK);
}
return result;
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/src/test/java/org/onap/policy/apex/plugins/event/carrier/websocket/WebSocketCarrierTechnologyParametersTest.java b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/src/test/java/org/onap/policy/apex/plugins/event/carrier/websocket/WebSocketCarrierTechnologyParametersTest.java
index 1ab732141..f318c000a 100644
--- a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/src/test/java/org/onap/policy/apex/plugins/event/carrier/websocket/WebSocketCarrierTechnologyParametersTest.java
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-websocket/src/test/java/org/onap/policy/apex/plugins/event/carrier/websocket/WebSocketCarrierTechnologyParametersTest.java
@@ -2,6 +2,7 @@
* ============LICENSE_START=======================================================
* Copyright (C) 2019 Samsung. All rights reserved.
* Modifications Copyright (C) 2019 Nordix Foundation.
+ * Modifications Copyright (C) 2021 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.
@@ -26,12 +27,12 @@ import static org.junit.Assert.assertNotNull;
import org.junit.Before;
import org.junit.Test;
-import org.onap.policy.common.parameters.GroupValidationResult;
+import org.onap.policy.common.parameters.ValidationResult;
public class WebSocketCarrierTechnologyParametersTest {
WebSocketCarrierTechnologyParameters webSocketCarrierTechnologyParameters = null;
- GroupValidationResult result = null;
+ ValidationResult result = null;
/**
* Set up testing.