Also modified code to use StandardYamlCoder.
Change-Id: I0596c8b054339ac68ef8c4250cd25b9ff88d47e4
Issue-ID: POLICY-2085
Signed-off-by: Jim Hahn <jrh3@att.com>
<artifactId>policy-endpoints</artifactId>
<version>${policy.common.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.onap.policy.common</groupId>
+ <artifactId>utils</artifactId>
+ <version>${policy.common.version}</version>
+ </dependency>
<dependency>
<groupId>org.onap.policy.common</groupId>
<artifactId>utils-test</artifactId>
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();
// 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
//
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;
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;
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;
// 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
//
//
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
//
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;
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 {
//
// 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;
*/
@Path("/policy/pdpx/v1")
@Api
-@Produces(MediaType.APPLICATION_JSON)
-@Consumes(MediaType.APPLICATION_JSON)
+@Produces({MediaType.APPLICATION_JSON, XacmlPdpRestController.APPLICATION_YAML})
+@Consumes({MediaType.APPLICATION_JSON, XacmlPdpRestController.APPLICATION_YAML})
@SwaggerDefinition(info = @Info(description = "Policy Xacml PDP Service", version = "1.0.0", title = "Policy Xacml PDP",
extensions = {@Extension(properties = {@ExtensionProperty(name = "planned-retirement-date", value = "tbd"),
@ExtensionProperty(name = "component", value = "Policy Framework")})}),
schemes = {SwaggerDefinition.Scheme.HTTP, SwaggerDefinition.Scheme.HTTPS},
securityDefinition = @SecurityDefinition(basicAuthDefinitions = {@BasicAuthDefinition(key = "basicAuth")}))
public class XacmlPdpRestController {
+ public static final String APPLICATION_YAML = "application/yaml";
@GET
@Path("/healthcheck")
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.
<sonar.jacoco.reportPath>${project.basedir}/../target/code-coverage/jacoco-ut.exec</sonar.jacoco.reportPath>
<sonar.jacoco.itReportPath>${project.basedir}/../target/code-coverage/jacoco-it.exec</sonar.jacoco.itReportPath>
<sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>
-
- <policy.common.version>1.5.2</policy.common.version>
+
+ <policy.common.version>1.6.0-SNAPSHOT</policy.common.version>
<policy.models.version>2.1.3</policy.models.version>
</properties>
<module>packages</module>
<module>testsuites</module>
</modules>
-
+
<dependencies>
<dependency>
<groupId>junit</groupId>
<version>${policy.models.version}</version>
</dependency>
</dependencies>
-
+
<distributionManagement>
<site>
<id>ecomp-site</id>
</goals>
<phase>process-sources</phase>
<configuration>
- <!-- Use Google Java Style Guide: https://github.com/checkstyle/checkstyle/blob/master/src/main/resources/google_checks.xml
+ <!-- Use Google Java Style Guide: https://github.com/checkstyle/checkstyle/blob/master/src/main/resources/google_checks.xml
with minor changes -->
<configLocation>onap-checkstyle/onap-java-style.xml</configLocation>
<!-- <sourceDirectory> is needed so that checkstyle ignores the generated sources directory -->
</excludes>
</configuration>
<executions>
- <!-- Prepares the property pointing to the JaCoCo runtime agent which is passed as VM argument when
+ <!-- Prepares the property pointing to the JaCoCo runtime agent which is passed as VM argument when
Maven the Surefire plugin is executed. -->
<execution>
<id>pre-unit-test</id>