Use Coder class 07/79307/2
authorJim Hahn <jrh3@att.com>
Wed, 27 Feb 2019 16:31:34 +0000 (11:31 -0500)
committerJim Hahn <jrh3@att.com>
Wed, 27 Feb 2019 23:39:15 +0000 (18:39 -0500)
Modified existing PAP code to use the Coder class instead of Gson.

Change-Id: I770d0adf201d7c1118085f85c36582e1143deb08
Issue-ID: POLICY-1444
Signed-off-by: Jim Hahn <jrh3@att.com>
main/pom.xml
main/src/main/java/org/onap/policy/pap/main/parameters/PapParameterHandler.java
main/src/test/java/org/onap/policy/pap/main/parameters/TestPapParameterHandler.java

index 19c54db..274cc5e 100644 (file)
             <groupId>commons-cli</groupId>
             <artifactId>commons-cli</artifactId>
         </dependency>
-        <dependency>
-            <groupId>com.google.code.gson</groupId>
-            <artifactId>gson</artifactId>
-        </dependency>
         <dependency>
             <groupId>org.onap.policy.common</groupId>
             <artifactId>common-parameters</artifactId>
index 08124bb..489eb52 100644 (file)
@@ -1,6 +1,7 @@
 /*-
  * ============LICENSE_START=======================================================
  *  Copyright (C) 2019 Nordix Foundation.
+ *  Modifications Copyright (C) 2019 AT&T Intellectual Property.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
 
 package org.onap.policy.pap.main.parameters;
 
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
-
-import java.io.FileReader;
 
+import java.io.File;
 import org.onap.policy.common.parameters.GroupValidationResult;
+import org.onap.policy.common.utils.coder.Coder;
+import org.onap.policy.common.utils.coder.CoderException;
+import org.onap.policy.common.utils.coder.StandardCoder;
 import org.onap.policy.pap.main.PolicyPapException;
 import org.onap.policy.pap.main.startstop.PapCommandLineArguments;
 import org.slf4j.Logger;
@@ -40,6 +41,8 @@ public class PapParameterHandler {
 
     private static final Logger LOGGER = LoggerFactory.getLogger(PapParameterHandler.class);
 
+    private static final Coder CODER = new StandardCoder();
+
     /**
      * Read the parameters from the parameter file.
      *
@@ -52,11 +55,10 @@ public class PapParameterHandler {
 
         // Read the parameters
         try {
-            // Read the parameters from JSON using Gson
-            final Gson gson = new GsonBuilder().create();
-            papParameterGroup =
-                    gson.fromJson(new FileReader(arguments.getFullConfigurationFilePath()), PapParameterGroup.class);
-        } catch (final Exception e) {
+            // Read the parameters from JSON
+            File file = new File(arguments.getFullConfigurationFilePath());
+            papParameterGroup = CODER.decode(file, PapParameterGroup.class);
+        } catch (final CoderException e) {
             final String errorMessage = "error reading parameters from \"" + arguments.getConfigurationFilePath()
                     + "\"\n" + "(" + e.getClass().getSimpleName() + "):" + e.getMessage();
             LOGGER.error(errorMessage, e);
index cb14748..b0f9521 100644 (file)
@@ -1,6 +1,7 @@
 /*-
  * ============LICENSE_START=======================================================
  *  Copyright (C) 2019 Nordix Foundation.
+ *  Modifications Copyright (C) 2019 AT&T Intellectual Property.
  * ================================================================================
  * 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,9 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
+import java.io.FileNotFoundException;
 import org.junit.Test;
+import org.onap.policy.common.utils.coder.CoderException;
 import org.onap.policy.pap.main.PolicyPapException;
 import org.onap.policy.pap.main.startstop.PapCommandLineArguments;
 
@@ -46,7 +49,8 @@ public class TestPapParameterHandler {
             new PapParameterHandler().getParameters(noArguments);
             fail("test should throw an exception here");
         } catch (final Exception e) {
-            assertTrue(e.getMessage().contains("FileNotFoundException"));
+            assertTrue(e.getCause() instanceof CoderException);
+            assertTrue(e.getCause().getCause() instanceof FileNotFoundException);
         }
     }
 
@@ -76,9 +80,9 @@ public class TestPapParameterHandler {
             new PapParameterHandler().getParameters(invalidArguments);
             fail("test should throw an exception here");
         } catch (final Exception e) {
-            assertEquals("error reading parameters from \"parameters/InvalidParameters.json\"\n"
-                    + "(JsonSyntaxException):java.lang.IllegalStateException: "
-                    + "Expected a string but was BEGIN_ARRAY at line 2 column 15 path $.name", e.getMessage());
+            assertTrue(e.getMessage().startsWith(
+                            "error reading parameters from \"parameters/InvalidParameters.json\""));
+            assertTrue(e.getCause() instanceof CoderException);
         }
     }