use of org.eclipse.winery.model.ids.definitions.DefinitionsChildId in project winery by eclipse.
the class IRepository method getReferencedDefinitionsChildIds.
default Collection<DefinitionsChildId> getReferencedDefinitionsChildIds(RelationshipTypeImplementationId id) {
// We have to use a HashSet to ensure that no duplicate ids are added
// There may be multiple IAs referencing the same type
Collection<DefinitionsChildId> ids = new HashSet<>();
final TRelationshipTypeImplementation element = this.getElement(id);
// IAs
return this.getReferencedTOSCAComponentImplementationArtifactIds(ids, element.getImplementationArtifacts(), id);
}
use of org.eclipse.winery.model.ids.definitions.DefinitionsChildId in project winery by eclipse.
the class YamlExporter method addManifest.
private String addManifest(IRepository repository, DefinitionsChildId id, Map<CsarContentProperties, CsarEntry> refMap, ZipOutputStream out, Map<String, Object> exportConfiguration) throws IOException {
String entryDefinitionsReference = getDefinitionsPathInsideCSAR(repository, id);
out.putNextEntry(new ZipEntry("TOSCA-Metadata/TOSCA.meta"));
StringBuilder stringBuilder = new StringBuilder();
// Setting Versions
stringBuilder.append(TOSCA_META_FILE_VERSION).append(": ").append(TOSCA_META_FILE_VERSION_VALUE).append("\n");
stringBuilder.append(CSAR_VERSION).append(": ").append(CSAR_VERSION_VALUE_FOR_YAML).append("\n");
stringBuilder.append(CREATED_BY).append(": Winery ").append(Environments.getInstance().getVersion()).append("\n");
// Winery currently is unaware of tDefinitions, therefore, we use the
// name of the service template
stringBuilder.append(ENTRY_DEFINITIONS).append(": ").append(entryDefinitionsReference).append("\n");
stringBuilder.append("\n");
assert (refMap.keySet().stream().anyMatch(fileProperties -> fileProperties.getPathInsideCsar().equals(entryDefinitionsReference)));
// Setting other files, mainly files belonging to artifacts
for (Map.Entry<CsarContentProperties, CsarEntry> item : refMap.entrySet()) {
final CsarEntry csarEntry = item.getValue();
final CsarContentProperties fileProperties = item.getKey();
stringBuilder.append(NAME).append(": ").append(fileProperties.getPathInsideCsar()).append("\n");
String mimeType;
if (csarEntry instanceof DocumentBasedCsarEntry) {
mimeType = MimeTypes.MIMETYPE_XSD;
} else if (csarEntry instanceof XMLDefinitionsBasedCsarEntry || csarEntry instanceof YAMLDefinitionsBasedCsarEntry || csarEntry instanceof DefinitionsBasedCsarEntry) {
mimeType = MimeTypes.MIMETYPE_TOSCA_DEFINITIONS;
} else if (csarEntry instanceof RemoteRefBasedCsarEntry) {
mimeType = repository.getMimeType((RemoteRefBasedCsarEntry) csarEntry);
} else {
mimeType = repository.getMimeType(((RepositoryRefBasedCsarEntry) csarEntry).getReference());
}
stringBuilder.append(CONTENT_TYPE).append(": ").append(mimeType).append("\n");
stringBuilder.append("\n");
}
String manifestString = stringBuilder.toString();
out.write(manifestString.getBytes());
out.closeEntry();
return manifestString;
}
use of org.eclipse.winery.model.ids.definitions.DefinitionsChildId in project winery by eclipse.
the class YamlRepository method definitionsFromRef.
/**
* Gets yaml service template from ref and converts it to xml definitions
*
* @param ref Repository File Reference
* @return xml definitions
*/
@Override
public TDefinitions definitionsFromRef(RepositoryFileReference ref) throws IOException {
Path targetPath = this.ref2AbsolutePath(ref);
if (ref.getParent() instanceof DefinitionsChildId) {
try {
QName name = ((DefinitionsChildId) ref.getParent()).getQName();
TDefinitions definitions = convertToDefinitions(targetPath, name.getLocalPart(), name.getNamespaceURI());
return getRequestedDefinition((DefinitionsChildId) ref.getParent(), definitions);
} catch (MultiException e) {
LOGGER.warn("Internal error", e);
}
}
return null;
}
use of org.eclipse.winery.model.ids.definitions.DefinitionsChildId in project winery by eclipse.
the class YamlRepository method ref2AbsolutePath.
/**
* Converts RepositoryFileReference to compatible YAML File
*
* @param ref RepositoryFileReference
* @return compatible Path
*/
@Override
public Path ref2AbsolutePath(RepositoryFileReference ref) {
Path resultPath = super.ref2AbsolutePath(ref);
GenericId convertedId = convertGenericId(ref.getParent());
if (convertedId != null) {
if (convertedId instanceof DefinitionsChildId) {
String convertedFilename = BackendUtils.getFileNameOfDefinitions((DefinitionsChildId) convertedId);
return resultPath.resolve(convertedFilename);
}
}
return resultPath;
}
use of org.eclipse.winery.model.ids.definitions.DefinitionsChildId in project winery by eclipse.
the class BackendUtilsTestWithGitBackedRepository method getVersionsOfOneDefinition.
@Test
public void getVersionsOfOneDefinition() throws Exception {
this.setRevisionTo("origin/plain");
DefinitionsChildId id = new NodeTypeId("http://opentosca.org/nodetypes", "NodeTypeWith5Versions_0.3.4-w3", false);
List<WineryVersion> versions = WineryVersionUtils.getAllVersionsOfOneDefinition(id, repository);
assertEquals(5, versions.size());
}
Aggregations