From 1df1c6aeb21b50ab5c4f7c4a7e6da7bc8abed62e Mon Sep 17 00:00:00 2001 From: Jim Hahn Date: Thu, 12 Sep 2019 16:05:18 -0400 Subject: Add yaml support to xacml-pdp rest server Also modified code to use StandardYamlCoder. Change-Id: I0596c8b054339ac68ef8c4250cd25b9ff88d47e4 Issue-ID: POLICY-2085 Signed-off-by: Jim Hahn --- applications/common/pom.xml | 5 +++++ .../policy/pdp/xacml/application/common/TestUtils.java | 10 +++------- .../application/common/std/StdMatchableTranslator.java | 1 - .../common/std/StdMatchableTranslatorTest.java | 15 ++++----------- .../application/guard/CoordinationGuardTranslator.java | 11 +++++------ 5 files changed, 17 insertions(+), 25 deletions(-) (limited to 'applications') diff --git a/applications/common/pom.xml b/applications/common/pom.xml index 8613a94d..dea04007 100644 --- a/applications/common/pom.xml +++ b/applications/common/pom.xml @@ -52,6 +52,11 @@ policy-endpoints ${policy.common.version} + + org.onap.policy.common + utils + ${policy.common.version} + org.onap.policy.common utils-test diff --git a/applications/common/src/main/java/org/onap/policy/pdp/xacml/application/common/TestUtils.java b/applications/common/src/main/java/org/onap/policy/pdp/xacml/application/common/TestUtils.java index f720fec4..3aa23eee 100644 --- a/applications/common/src/main/java/org/onap/policy/pdp/xacml/application/common/TestUtils.java +++ b/applications/common/src/main/java/org/onap/policy/pdp/xacml/application/common/TestUtils.java @@ -27,18 +27,17 @@ import java.util.List; import java.util.Map; import org.onap.policy.common.utils.coder.CoderException; -import org.onap.policy.common.utils.coder.StandardCoder; +import org.onap.policy.common.utils.coder.StandardYamlCoder; import org.onap.policy.common.utils.resources.ResourceUtils; import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicy; import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate; import org.onap.policy.models.tosca.simple.concepts.JpaToscaServiceTemplate; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.yaml.snakeyaml.Yaml; public class TestUtils { private static final Logger LOGGER = LoggerFactory.getLogger(TestUtils.class); - private static final StandardCoder standardCoder = new StandardCoder(); + private static final StandardYamlCoder yamlCoder = new StandardYamlCoder(); private TestUtils() { super(); @@ -62,13 +61,10 @@ public class TestUtils { // Decode it // String policyYaml = ResourceUtils.getResourceAsString(resourceFile); - Yaml yaml = new Yaml(); - Object yamlObject = yaml.load(policyYaml); - String yamlAsJsonString = standardCoder.encode(yamlObject); // // Serialize it into a class // - ToscaServiceTemplate serviceTemplate = standardCoder.decode(yamlAsJsonString, ToscaServiceTemplate.class); + ToscaServiceTemplate serviceTemplate = yamlCoder.decode(policyYaml, ToscaServiceTemplate.class); // // Make sure all the fields are setup properly // diff --git a/applications/common/src/main/java/org/onap/policy/pdp/xacml/application/common/std/StdMatchableTranslator.java b/applications/common/src/main/java/org/onap/policy/pdp/xacml/application/common/std/StdMatchableTranslator.java index 1c69c7a6..0575ef1b 100644 --- a/applications/common/src/main/java/org/onap/policy/pdp/xacml/application/common/std/StdMatchableTranslator.java +++ b/applications/common/src/main/java/org/onap/policy/pdp/xacml/application/common/std/StdMatchableTranslator.java @@ -32,7 +32,6 @@ import com.att.research.xacml.api.Response; import com.att.research.xacml.api.Result; import com.att.research.xacml.api.XACML3; import com.att.research.xacml.std.IdentifierImpl; -import com.att.research.xacml.std.annotations.RequestParser; import com.att.research.xacml.util.XACMLPolicyWriter; import com.google.gson.Gson; import java.io.ByteArrayOutputStream; diff --git a/applications/common/src/test/java/org/onap/policy/pdp/xacml/application/common/std/StdMatchableTranslatorTest.java b/applications/common/src/test/java/org/onap/policy/pdp/xacml/application/common/std/StdMatchableTranslatorTest.java index 3e690882..3323040f 100644 --- a/applications/common/src/test/java/org/onap/policy/pdp/xacml/application/common/std/StdMatchableTranslatorTest.java +++ b/applications/common/src/test/java/org/onap/policy/pdp/xacml/application/common/std/StdMatchableTranslatorTest.java @@ -49,7 +49,7 @@ import org.onap.policy.common.endpoints.parameters.RestServerParameters; import org.onap.policy.common.endpoints.properties.PolicyEndPointProperties; import org.onap.policy.common.gson.GsonMessageBodyHandler; import org.onap.policy.common.utils.coder.CoderException; -import org.onap.policy.common.utils.coder.StandardCoder; +import org.onap.policy.common.utils.coder.StandardYamlCoder; import org.onap.policy.common.utils.network.NetworkUtil; import org.onap.policy.common.utils.resources.ResourceUtils; import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicy; @@ -59,13 +59,12 @@ import org.onap.policy.models.tosca.simple.concepts.JpaToscaServiceTemplate; import org.onap.policy.pdp.xacml.application.common.ToscaPolicyConversionException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.yaml.snakeyaml.Yaml; public class StdMatchableTranslatorTest { private static final Logger logger = LoggerFactory.getLogger(StdMatchableTranslatorTest.class); private static final String CLIENT_NAME = "policy-api"; - private static final StandardCoder standardCoder = new StandardCoder(); + private static final StandardYamlCoder yamlCoder = new StandardYamlCoder(); private static int port; private static RestServerParameters clientParams; private static ToscaPolicyType testPolicyType; @@ -116,13 +115,10 @@ public class StdMatchableTranslatorTest { // Load our test policy type // String policyYaml = ResourceUtils.getResourceAsString("matchable/onap.policies.Test-1.0.0.yaml"); - Yaml yaml = new Yaml(); - Object yamlObject = yaml.load(policyYaml); - String yamlAsJsonString = standardCoder.encode(yamlObject); // // Serialize it into a class // - ToscaServiceTemplate serviceTemplate = standardCoder.decode(yamlAsJsonString, ToscaServiceTemplate.class); + ToscaServiceTemplate serviceTemplate = yamlCoder.decode(policyYaml, ToscaServiceTemplate.class); // // Make sure all the fields are setup properly // @@ -160,13 +156,10 @@ public class StdMatchableTranslatorTest { // String policyYaml = ResourceUtils.getResourceAsString( "src/test/resources/matchable/test.policies.input.tosca.yaml"); - Yaml yaml = new Yaml(); - Object yamlObject = yaml.load(policyYaml); - String yamlAsJsonString = standardCoder.encode(yamlObject); // // Serialize it into a class // - ToscaServiceTemplate serviceTemplate = standardCoder.decode(yamlAsJsonString, ToscaServiceTemplate.class); + ToscaServiceTemplate serviceTemplate = yamlCoder.decode(policyYaml, ToscaServiceTemplate.class); // // Make sure all the fields are setup properly // diff --git a/applications/guard/src/main/java/org/onap/policy/xacml/pdp/application/guard/CoordinationGuardTranslator.java b/applications/guard/src/main/java/org/onap/policy/xacml/pdp/application/guard/CoordinationGuardTranslator.java index a93e2811..92e0301d 100644 --- a/applications/guard/src/main/java/org/onap/policy/xacml/pdp/application/guard/CoordinationGuardTranslator.java +++ b/applications/guard/src/main/java/org/onap/policy/xacml/pdp/application/guard/CoordinationGuardTranslator.java @@ -43,6 +43,8 @@ import java.util.stream.Stream; import oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicyType; import org.apache.commons.io.IOUtils; +import org.onap.policy.common.utils.coder.CoderException; +import org.onap.policy.common.utils.coder.StandardYamlCoder; import org.onap.policy.models.decisions.concepts.DecisionRequest; import org.onap.policy.models.decisions.concepts.DecisionResponse; import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicy; @@ -50,8 +52,6 @@ import org.onap.policy.pdp.xacml.application.common.ToscaPolicyConversionExcepti import org.onap.policy.pdp.xacml.application.common.ToscaPolicyTranslator; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.yaml.snakeyaml.Yaml; -import org.yaml.snakeyaml.constructor.Constructor; public class CoordinationGuardTranslator implements ToscaPolicyTranslator { @@ -117,11 +117,10 @@ public class CoordinationGuardTranslator implements ToscaPolicyTranslator { // // Read the yaml into our Java Object // - Yaml yaml = new Yaml(new Constructor(CoordinationDirective.class)); - Object obj = yaml.load(contents); + CoordinationDirective obj = new StandardYamlCoder().decode(contents, CoordinationDirective.class); LOGGER.debug(contents); - return (CoordinationDirective) obj; - } catch (IOException e) { + return obj; + } catch (IOException | CoderException e) { LOGGER.error("Error while loading YAML coordination directive", e); } return null; -- cgit 1.2.3-korg