[DMAAP-CLIENT] First sonar issues review part2
[dmaap/messagerouter/dmaapclient.git] / src / main / java / org / onap / dmaap / mr / tools / ValidatorUtil.java
index cdba1e0..d01c34f 100644 (file)
@@ -4,11 +4,13 @@
  *  ================================================================================
  *  Copyright © 2017 AT&T Intellectual Property. All rights reserved.
  *  ================================================================================
+ *  Modifications Copyright © 2021 Orange.
+ *  ================================================================================
  *  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.
  *  ============LICENSE_END=========================================================
  *
  *  ECOMP is a trademark and service mark of AT&T Intellectual Property.
- *  
+ *
  *******************************************************************************/
+
 package org.onap.dmaap.mr.tools;
 
 import java.util.Properties;
-
-import org.onap.dmaap.mr.test.clients.ProtocolTypeConstants;
+import org.onap.dmaap.mr.client.ProtocolType;
 
 public class ValidatorUtil {
 
-       public  static void validatePublisher(Properties props) {
-               String transportType = props.getProperty("TransportType");
-               if (ProtocolTypeConstants.DME2.getValue().equalsIgnoreCase(transportType)) {
-                       validateForDME2(props);
-               } else {
-                        validateForNonDME2(props);
-               }
-               String maxBatchSize  = props.getProperty("maxBatchSize");
-               if (maxBatchSize == null || maxBatchSize.isEmpty()) {
-                       throw new IllegalArgumentException ( "maxBatchSize is needed" );
-               }
-               String maxAgeMs  = props.getProperty("maxAgeMs");
-               if (maxAgeMs == null || maxAgeMs.isEmpty()) {
-                       throw new IllegalArgumentException ( "maxAgeMs is needed" );
-               }
-               String messageSentThreadOccurance  = props.getProperty("MessageSentThreadOccurance");
-               if (messageSentThreadOccurance == null || messageSentThreadOccurance.isEmpty()) {
-                       throw new IllegalArgumentException ( "MessageSentThreadOccurance is needed" );
-               }
-               
-       }
+    private static final String ID = "id";
+    private static final String AUTH_KEY = "authKey";
+    private static final String AUTH_DATE = "authDate";
+    private static final String PASSWORD = "password";
+    private static final String USERNAME = "username";
+    private static final String HOST = "host";
+    private static final String DME2PREFERRED_ROUTER_FILE_PATH = "DME2preferredRouterFilePath";
+    private static final String TOPIC = "topic";
+    private static final String TRANSPORT_TYPE = "TransportType";
+    private static final String MAX_BATCH_SIZE = "maxBatchSize";
+    private static final String MAX_AGE_MS = "maxAgeMs";
+    private static final String MESSAGE_SENT_THREAD_OCCURRENCE_OLD = "MessageSentThreadOccurance";
+    private static final String MESSAGE_SENT_THREAD_OCCURRENCE = "MessageSentThreadOccurrence";
+    private static final String GROUP = "group";
+    private static final String SERVICE_NAME = "ServiceName";
+    private static final String PARTNER = "Partner";
+    private static final String ROUTE_OFFER = "routeOffer";
+    private static final String PROTOCOL = "Protocol";
+    private static final String METHOD_TYPE = "MethodType";
+    private static final String CONTENT_TYPE = "contenttype";
+    private static final String LATITUDE = "Latitude";
+    private static final String LONGITUDE = "Longitude";
+    private static final String AFT_ENVIRONMENT = "AFT_ENVIRONMENT";
+    private static final String VERSION = "Version";
+    private static final String ENVIRONMENT = "Environment";
+    private static final String SUB_CONTEXT_PATH = "SubContextPath";
+    private static final String SESSION_STICKINESS_REQUIRED = "sessionstickinessrequired";
+
+    public static final String IS_NEEDED = " is needed";
+
+    private ValidatorUtil() {
+
+    }
+
+    public static void validatePublisher(Properties props) {
+        String transportType = props.getProperty(TRANSPORT_TYPE);
+        if (ProtocolType.DME2.getValue().equalsIgnoreCase(transportType)) {
+            validateForDME2(props);
+        } else {
+            validateForNonDME2(props);
+        }
+        String maxBatchSize = props.getProperty(MAX_BATCH_SIZE, "");
+        if (maxBatchSize.isEmpty()) {
+            throw new IllegalArgumentException(MAX_BATCH_SIZE + IS_NEEDED);
+        }
+        String maxAgeMs = props.getProperty(MAX_AGE_MS, "");
+        if (maxAgeMs.isEmpty()) {
+            throw new IllegalArgumentException(MAX_AGE_MS + IS_NEEDED);
+        }
+
+        String messageSentThreadOccurrence = props.getProperty(MESSAGE_SENT_THREAD_OCCURRENCE);
+        if (messageSentThreadOccurrence == null || messageSentThreadOccurrence.isEmpty()) {
+            messageSentThreadOccurrence = props.getProperty(MESSAGE_SENT_THREAD_OCCURRENCE_OLD);
+        }
+        if (messageSentThreadOccurrence == null || messageSentThreadOccurrence.isEmpty()) {
+            throw new IllegalArgumentException(MESSAGE_SENT_THREAD_OCCURRENCE + IS_NEEDED);
+        }
+        try {
+            Integer.parseInt(messageSentThreadOccurrence);
+        } catch (NumberFormatException e) {
+            throw new IllegalArgumentException(MESSAGE_SENT_THREAD_OCCURRENCE + " must be an integer");
+        }
+
+    }
+
+    public static void validateSubscriber(Properties props) {
+        String transportType = props.getProperty(TRANSPORT_TYPE);
+        if (ProtocolType.DME2.getValue().equalsIgnoreCase(transportType)) {
+            validateForDME2(props);
+        } else {
+            validateForNonDME2(props);
+        }
+        String group = props.getProperty(GROUP, "");
+        if (group.isEmpty()) {
+            throw new IllegalArgumentException(GROUP + IS_NEEDED);
+        }
+        String id = props.getProperty(ID, "");
+        if (id.isEmpty()) {
+            throw new IllegalArgumentException("Consumer (" + ID + ")" + IS_NEEDED);
+        }
+    }
+
+    private static void validateForDME2(Properties props) {
+        String serviceName = props.getProperty(SERVICE_NAME, "");
+        if (serviceName.isEmpty()) {
+            throw new IllegalArgumentException(SERVICE_NAME + IS_NEEDED);
+        }
+        String topic = props.getProperty(TOPIC, "");
+        if (topic.isEmpty()) {
+            throw new IllegalArgumentException(TOPIC + IS_NEEDED);
+        }
+        String username = props.getProperty(USERNAME, "");
+        if (username.isEmpty()) {
+            throw new IllegalArgumentException(USERNAME + IS_NEEDED);
+        }
+        String password = props.getProperty(PASSWORD, "");
+        if (password.isEmpty()) {
+            throw new IllegalArgumentException(PASSWORD + IS_NEEDED);
+        }
+        String dme2preferredRouterFilePath = props.getProperty(DME2PREFERRED_ROUTER_FILE_PATH, "");
+        if (dme2preferredRouterFilePath.isEmpty()) {
+            throw new IllegalArgumentException(DME2PREFERRED_ROUTER_FILE_PATH + IS_NEEDED);
+        }
+        String partner = props.getProperty(PARTNER, "");
+        String routeOffer = props.getProperty(ROUTE_OFFER, "");
+        if (partner.isEmpty() && routeOffer.isEmpty()) {
+            throw new IllegalArgumentException(PARTNER + " or " + ROUTE_OFFER + IS_NEEDED);
+        }
+        String protocol = props.getProperty(PROTOCOL, "");
+        if (protocol.isEmpty()) {
+            throw new IllegalArgumentException(PROTOCOL + IS_NEEDED);
+        }
+        String methodType = props.getProperty(METHOD_TYPE, "");
+        if (methodType.isEmpty()) {
+            throw new IllegalArgumentException(METHOD_TYPE + IS_NEEDED);
+        }
+        String contentType = props.getProperty(CONTENT_TYPE, "");
+        if (contentType.isEmpty()) {
+            throw new IllegalArgumentException(CONTENT_TYPE + IS_NEEDED);
+        }
+        String latitude = props.getProperty(LATITUDE, "");
+        if (latitude.isEmpty()) {
+            throw new IllegalArgumentException(LATITUDE + IS_NEEDED);
+        }
+        String longitude = props.getProperty(LONGITUDE, "");
+        if (longitude.isEmpty()) {
+            throw new IllegalArgumentException(LONGITUDE + IS_NEEDED);
+        }
+        String aftEnv = props.getProperty(AFT_ENVIRONMENT, "");
+        if (aftEnv.isEmpty()) {
+            throw new IllegalArgumentException(AFT_ENVIRONMENT + IS_NEEDED);
+        }
+        String version = props.getProperty(VERSION, "");
+        if (version.isEmpty()) {
+            throw new IllegalArgumentException(VERSION + IS_NEEDED);
+        }
+        String environment = props.getProperty(ENVIRONMENT, "");
+        if (environment.isEmpty()) {
+            throw new IllegalArgumentException(ENVIRONMENT + IS_NEEDED);
+        }
+        String subContextPath = props.getProperty(SUB_CONTEXT_PATH, "");
+        if (subContextPath.isEmpty()) {
+            throw new IllegalArgumentException(SUB_CONTEXT_PATH + IS_NEEDED);
+        }
+        String sessionstickinessrequired = props.getProperty(SESSION_STICKINESS_REQUIRED, "");
+        if (sessionstickinessrequired.isEmpty()) {
+            throw new IllegalArgumentException(SESSION_STICKINESS_REQUIRED + IS_NEEDED);
+        }
+    }
+
+    private static void validateForNonDME2(Properties props) {
+        String host = props.getProperty(HOST, "");
+        if (host.isEmpty()) {
+            throw new IllegalArgumentException(HOST + IS_NEEDED);
+        }
+        String topic = props.getProperty(TOPIC, "");
+        if (topic.isEmpty()) {
+            throw new IllegalArgumentException(TOPIC + IS_NEEDED);
+        }
+        String contenttype = props.getProperty(CONTENT_TYPE, "");
+        if (contenttype.isEmpty()) {
+            throw new IllegalArgumentException(CONTENT_TYPE + IS_NEEDED);
+        }
+        String transportType = props.getProperty(TRANSPORT_TYPE);
+        if (!ProtocolType.HTTPNOAUTH.getValue().equalsIgnoreCase(transportType)) {
+            String username = props.getProperty(USERNAME, "");
+            if (username.isEmpty()) {
+                throw new IllegalArgumentException(USERNAME + IS_NEEDED);
+            }
+            String password = props.getProperty(PASSWORD, "");
+            if (password.isEmpty()) {
+                throw new IllegalArgumentException(PASSWORD + IS_NEEDED);
+            }
+        }
+        if (ProtocolType.AUTH_KEY.getValue().equalsIgnoreCase(transportType)) {
+            String authKey = props.getProperty(AUTH_KEY, "");
+            if (authKey.isEmpty()) {
+                throw new IllegalArgumentException(AUTH_KEY + IS_NEEDED);
+            }
+            String authDate = props.getProperty(AUTH_DATE, "");
+            if (authDate.isEmpty()) {
+                throw new IllegalArgumentException(AUTH_DATE + IS_NEEDED);
+            }
+        }
+    }
 
-       public  static void validateSubscriber(Properties props) {
-               String transportType = props.getProperty("TransportType");
-               if (ProtocolTypeConstants.DME2.getValue().equalsIgnoreCase(transportType)) {
-                       validateForDME2(props);
-               } else {
-                        validateForNonDME2(props);
-               }
-               String group  = props.getProperty("group");
-               if (group == null || group.isEmpty()) {
-                       throw new IllegalArgumentException ( "group is needed" );
-               }
-               String id  = props.getProperty("id");
-               if (id == null || id.isEmpty()) {
-                       throw new IllegalArgumentException ( "Consumer (Id)  is needed" );
-               }
-       }
-       
-       private  static void validateForDME2(Properties props) {
-               String serviceName  = props.getProperty("ServiceName");
-               if (serviceName == null || serviceName.isEmpty()) {
-                       throw new IllegalArgumentException ( "Servicename is needed" );
-               }
-               String topic  = props.getProperty("topic");
-               if (topic == null || topic.isEmpty()) {
-                       throw new IllegalArgumentException ( "topic is needed" );
-               }
-               String username  = props.getProperty("username");
-               if (username == null || username.isEmpty()) {
-                       throw new IllegalArgumentException ( "username is needed" );
-               }
-               String password  = props.getProperty("password");
-               if (password == null || password.isEmpty()) {
-                       throw new IllegalArgumentException ( "password is needed" );
-               }
-               String dME2preferredRouterFilePath  = props.getProperty("DME2preferredRouterFilePath");
-               if (dME2preferredRouterFilePath == null || dME2preferredRouterFilePath.isEmpty()) {
-                       throw new IllegalArgumentException ( "DME2preferredRouterFilePath is needed" );
-               }
-               String partner  = props.getProperty("Partner");
-               String routeOffer  = props.getProperty("routeOffer");
-               if ((partner == null || partner.isEmpty()) && (routeOffer == null || routeOffer.isEmpty())) {
-                       throw new IllegalArgumentException ( "Partner or  routeOffer is needed" );
-               }
-               String protocol  = props.getProperty("Protocol");
-               if (protocol == null || protocol.isEmpty()) {
-                       throw new IllegalArgumentException ( "Protocol is needed" );
-               }
-               String methodType  = props.getProperty("MethodType");
-               if (methodType == null || methodType.isEmpty()) {
-                       throw new IllegalArgumentException ( "MethodType is needed" );
-               }
-               String contenttype  = props.getProperty("contenttype");
-               if (contenttype == null || contenttype.isEmpty()) {
-                       throw new IllegalArgumentException ( "contenttype is needed" );
-               }
-               String latitude  = props.getProperty("Latitude");
-               if (latitude == null || latitude.isEmpty()) {
-                       throw new IllegalArgumentException ( "Latitude is needed" );
-               }
-               String longitude  = props.getProperty("Longitude");
-               if (longitude == null || longitude.isEmpty()) {
-                       throw new IllegalArgumentException ( "Longitude is needed" );
-               }
-               String aftEnv  = props.getProperty("AFT_ENVIRONMENT");
-               if (aftEnv == null || aftEnv.isEmpty()) {
-                       throw new IllegalArgumentException ( "AFT_ENVIRONMENT is needed" );
-               }
-               String version  = props.getProperty("Version");
-               if (version == null || version.isEmpty()) {
-                       throw new IllegalArgumentException ( "Version is needed" );
-               }
-               String environment  = props.getProperty("Environment");
-               if (environment == null || environment.isEmpty()) {
-                       throw new IllegalArgumentException ( "Environment is needed" );
-               }
-               String subContextPath  = props.getProperty("SubContextPath");
-               if (subContextPath == null || subContextPath.isEmpty()) {
-                       throw new IllegalArgumentException ( "SubContextPath is needed" );
-               }
-               String sessionstickinessrequired  = props.getProperty("sessionstickinessrequired");
-               if (sessionstickinessrequired == null || sessionstickinessrequired.isEmpty()) {
-                       throw new IllegalArgumentException ( "sessionstickinessrequired  is needed" );
-               }
-       }
-       
-       private  static void validateForNonDME2(Properties props) {
-               String transportType = props.getProperty("TransportType");
-               String host  = props.getProperty("host");
-               if (host == null || host.isEmpty()) {
-                       throw new IllegalArgumentException ( "Servicename is needed" );
-               }
-               String topic  = props.getProperty("topic");
-               if (topic == null || topic.isEmpty()) {
-                       throw new IllegalArgumentException ( "topic is needed" );
-               }
-               String contenttype  = props.getProperty("contenttype");
-               if (contenttype == null || contenttype.isEmpty()) {
-                       throw new IllegalArgumentException ( "contenttype is needed" );
-               }
-               if (!ProtocolTypeConstants.HTTPNOAUTH.getValue().equalsIgnoreCase(transportType)){
-               String username  = props.getProperty("username");
-               if (username == null || username.isEmpty()) {
-                       throw new IllegalArgumentException ( "username is needed" );
-               }
-               String password  = props.getProperty("password");
-               if (password == null || password.isEmpty()) {
-                       throw new IllegalArgumentException ( "password is needed" );
-               }
-               }
-               if (ProtocolTypeConstants.AUTH_KEY.getValue().equalsIgnoreCase(transportType)) {
-                       String authKey  = props.getProperty("authKey");
-                       if (authKey == null || authKey.isEmpty()) {
-                               throw new IllegalArgumentException ( "authKey is needed" );
-                       }
-                       String authDate  = props.getProperty("authDate");
-                       if (authDate == null || authDate.isEmpty()) {
-                               throw new IllegalArgumentException ( "authDate is needed" );
-                       }
-                       
-               }
-       }       
-       
 }