use of org.eclipse.winery.repository.converter.reader.YamlReader in project winery by eclipse.
the class YamlRepository method readServiceTemplate.
/**
* Reads service template from referenced definition
*
* @param ref repository file reference
* @return yaml service template
*/
private YTServiceTemplate readServiceTemplate(RepositoryFileReference ref) throws IOException, MultiException {
Path targetPath = ref2AbsolutePath(ref);
InputStream in = newInputStream(targetPath);
LOGGER.debug("Reading service template from reference {} resolved as {}", ref, targetPath);
return new YamlReader().parse(in);
}
use of org.eclipse.winery.repository.converter.reader.YamlReader in project winery by eclipse.
the class ImportVisitor method visit.
@Override
public Result visit(YTServiceTemplate node, Parameter parameter) {
YamlReader reader = new YamlReader();
if (!this.namespace.equals(Namespaces.TOSCA_YAML_NS)) {
Set<String> typeDefinitions = new HashSet<>(Arrays.asList(Defaults.TOSCA_NORMATIVE_TYPES, Defaults.TOSCA_NONNORMATIVE_TYPES));
String tmpNamespace = this.namespace;
this.namespace = Namespaces.TOSCA_YAML_NS;
Path tmpDir = Utils.getTmpDir(Paths.get("types"));
for (String typeDefinition : typeDefinitions) {
try {
Path outFilePath = tmpDir.resolve(typeDefinition);
InputStream inputStream = this.getClass().getResourceAsStream(// Do not use File.separator here (https://stackoverflow.com/a/41677152/8235252)
"/".concat(typeDefinition));
Files.copy(inputStream, outFilePath, StandardCopyOption.REPLACE_EXISTING);
YTServiceTemplate serviceTemplate = reader.parseSkipTest(outFilePath, Namespaces.TOSCA_YAML_NS);
if (Objects.nonNull(serviceTemplate)) {
serviceTemplate.accept(this, new Parameter());
}
} catch (MultiException e) {
setException(e);
} catch (Exception e) {
e.printStackTrace();
}
}
this.namespace = tmpNamespace;
}
super.visit(node, parameter);
return null;
}
use of org.eclipse.winery.repository.converter.reader.YamlReader in project winery by eclipse.
the class YamlReaderTest method testPropertyFunctionReading.
@Test
public void testPropertyFunctionReading() throws Exception {
YamlReader reader = new YamlReader();
InputStream is = getClass().getClassLoader().getResourceAsStream("yaml/property_functions.yml");
YTServiceTemplate template = reader.parse(is);
Assertions.assertNotNull(template);
}
use of org.eclipse.winery.repository.converter.reader.YamlReader in project winery by eclipse.
the class YamlReaderTest method testBasicTopologyTemplate.
@DisplayName("Basic Topology Template Reader Test")
@Test
public void testBasicTopologyTemplate() throws Exception {
YamlReader reader = new YamlReader();
InputStream is = getClass().getClassLoader().getResourceAsStream("yaml/simple-tests/valid-topology_templates-1_3.yml");
YTServiceTemplate serviceTemplate = reader.parse(is);
Assertions.assertNotNull(serviceTemplate);
YTTopologyTemplateDefinition topoTemplate = serviceTemplate.getTopologyTemplate();
Assertions.assertNotNull(topoTemplate);
Assertions.assertEquals(topoTemplate.getPolicies().size(), 2);
Assertions.assertEquals(topoTemplate.getNodeTemplates().size(), 1);
Assertions.assertEquals(topoTemplate.getRelationshipTemplates().size(), 1);
}
use of org.eclipse.winery.repository.converter.reader.YamlReader in project winery by eclipse.
the class ImportVisitor method visit.
@Override
public Result visit(YTImportDefinition node, Parameter parameter) {
YamlReader reader = new YamlReader();
String importNamespace = node.getNamespaceUri() == null ? this.namespace : node.getNamespaceUri();
try {
YTServiceTemplate serviceTemplate = reader.parse(node, path, importNamespace);
if (serviceTemplate != null) {
String tmpNamespace = this.namespace;
this.namespace = importNamespace;
this.visit(serviceTemplate, new Parameter());
this.namespace = tmpNamespace;
}
super.visit(node, parameter);
} catch (MultiException e) {
this.setException(e);
}
return null;
}
Aggregations