use of org.eclipse.winery.repository.datatypes.ids.elements.ArtifactTemplateSourceDirectoryId in project winery by eclipse.
the class XmlRepositoryTest method subDirectoryExpandedCorrectly.
@Test
public void subDirectoryExpandedCorrectly() throws Exception {
ArtifactTemplateId artifactTemplateId = new ArtifactTemplateId("http://www.example.org", "at", false);
ArtifactTemplateSourceDirectoryId artifactTemplateSourceDirectoryId = new ArtifactTemplateSourceDirectoryId(artifactTemplateId);
final Path subDirectories = Paths.get("dir1", "dir2", "dir3");
RepositoryFileReference ref = new RepositoryFileReference(artifactTemplateSourceDirectoryId, subDirectories, "test.txt");
final IRepository repository = this.repository;
final Path expected = Paths.get("artifacttemplates", "http%3A%2F%2Fwww.example.org", "at", "source", "dir1", "dir2", "dir3", "test.txt");
assertEquals(expected, repository.getRepositoryRoot().relativize(repository.ref2AbsolutePath(ref)));
}
use of org.eclipse.winery.repository.datatypes.ids.elements.ArtifactTemplateSourceDirectoryId in project winery by eclipse.
the class XmlRepositoryTest method allFilesCorrectlyImported.
@Test
public void allFilesCorrectlyImported() throws Exception {
this.setRevisionTo("5b7f106ab79a9ba137ece9167a79753dfc64ac84");
ArtifactTemplateId artifactTemplateId = new ArtifactTemplateId("http://www.example.org", "at", false);
ArtifactTemplateSourceDirectoryId artifactTemplateSourceDirectoryId = new ArtifactTemplateSourceDirectoryId(artifactTemplateId);
final Path subDirectories = Paths.get("dir1", "dir2", "dir3");
Path workingDir = Files.createTempDirectory("winery");
final Path subDir = workingDir.resolve(subDirectories);
Files.createDirectories(subDir);
Path tempFile = subDir.resolve("test.txt");
Files.createFile(tempFile);
BackendUtils.importDirectory(workingDir, this.repository, artifactTemplateSourceDirectoryId);
RepositoryFileReference ref = new RepositoryFileReference(artifactTemplateSourceDirectoryId, subDirectories, "test.txt");
assertTrue(repository.exists(ref));
}
use of org.eclipse.winery.repository.datatypes.ids.elements.ArtifactTemplateSourceDirectoryId in project winery by eclipse.
the class FilebasedRepositoryTest method allFilesCorrectlyImported.
@Test
public void allFilesCorrectlyImported() throws Exception {
this.setRevisionTo("5b7f106ab79a9ba137ece9167a79753dfc64ac84");
ArtifactTemplateId artifactTemplateId = new ArtifactTemplateId("http://www.example.org", "at", false);
ArtifactTemplateSourceDirectoryId artifactTemplateSourceDirectoryId = new ArtifactTemplateSourceDirectoryId(artifactTemplateId);
final Path subDirectories = Paths.get("dir1", "dir2", "dir3");
Path workingDir = Files.createTempDirectory("winery");
final Path subDir = workingDir.resolve(subDirectories);
Files.createDirectories(subDir);
Path tempFile = subDir.resolve("test.txt");
Files.createFile(tempFile);
BackendUtils.importDirectory(workingDir, this.repository, artifactTemplateSourceDirectoryId);
RepositoryFileReference ref = new RepositoryFileReference(artifactTemplateSourceDirectoryId, subDirectories, "test.txt");
Assert.assertTrue(repository.exists(ref));
}
use of org.eclipse.winery.repository.datatypes.ids.elements.ArtifactTemplateSourceDirectoryId in project winery by eclipse.
the class FilebasedRepositoryTest method subDirectoryExpandedCorrectly.
@Test
public void subDirectoryExpandedCorrectly() throws Exception {
ArtifactTemplateId artifactTemplateId = new ArtifactTemplateId("http://www.example.org", "at", false);
ArtifactTemplateSourceDirectoryId artifactTemplateSourceDirectoryId = new ArtifactTemplateSourceDirectoryId(artifactTemplateId);
final Path subDirectories = Paths.get("dir1", "dir2", "dir3");
RepositoryFileReference ref = new RepositoryFileReference(artifactTemplateSourceDirectoryId, subDirectories, "test.txt");
final FilebasedRepository repository = (FilebasedRepository) this.repository;
final Path expected = Paths.get("artifacttemplates", "http%3A%2F%2Fwww.example.org", "at", "source", "dir1", "dir2", "dir3", "test.txt");
Assert.assertEquals(expected, repository.getRepositoryRoot().relativize(repository.ref2AbsolutePath(ref)));
}
use of org.eclipse.winery.repository.datatypes.ids.elements.ArtifactTemplateSourceDirectoryId in project winery by eclipse.
the class ArtifactTemplateResource method copySourceToFilesResource.
@POST
@Consumes(MediaType.APPLICATION_JSON)
public Response copySourceToFilesResource(@ApiParam(value = "if data contains a non-empty array than only the files" + " whose names are included are copied ", required = true) ArtifactResourcesApiData data) {
List<String> artifactList = data.getArtifactNames();
DirectoryId sourceDir = new ArtifactTemplateSourceDirectoryId((ArtifactTemplateId) this.id);
FilesResource filesResource = getFilesResource();
for (RepositoryFileReference ref : RepositoryFactory.getRepository().getContainedFiles(sourceDir)) {
if (artifactList == null || artifactList.contains(ref.getFileName())) {
try (InputStream inputStream = RepositoryFactory.getRepository().newInputStream(ref)) {
String fileName = ref.getFileName();
String subDirectory = ref.getSubDirectory().map(s -> s.toString()).orElse("");
filesResource.putFile(fileName, subDirectory, inputStream);
} catch (IOException e) {
LOGGER.debug("The artifact source " + ref.getFileName() + " could not be copied to the files directory.", e);
return Response.status(Status.INTERNAL_SERVER_ERROR).build();
}
}
}
return Response.status(Status.CREATED).build();
}
Aggregations