use of org.sonatype.nexus.repository.storage.Asset in project nexus-repository-r by sonatype-nexus-community.
the class RProxyFacetImpl method doPutArchive.
@TransactionalStoreBlob
protected Content doPutArchive(final String path, final TempBlob archiveContent, final Content content) throws IOException {
RFacet rFacet = facet(RFacet.class);
StorageTx tx = UnitOfWork.currentTx();
Map<String, String> attributes;
try (InputStream is = archiveContent.get()) {
attributes = extractDescriptionFromArchive(path, is);
}
Component component = rFacet.findOrCreateComponent(tx, path, attributes);
Asset asset = rFacet.findOrCreateAsset(tx, component, path, attributes);
return saveAsset(tx, asset, archiveContent, content);
}
use of org.sonatype.nexus.repository.storage.Asset in project nexus-repository-r by sonatype-nexus-community.
the class RBrowseNodeGeneratorTest method shouldComputeAssetAndComponentPath.
@Test
public void shouldComputeAssetAndComponentPath() {
final String commonPath = "bin/macosx/el-capitan/contrib/3.6";
final String lastSegment = "devtools_2.2.1.tgz";
final String assetPath = commonPath + "/" + lastSegment;
final String componentName = "devtools";
final String componentVersion = "2.2.1";
final String componentBrowsePath = commonPath + "/" + componentName + "/" + componentVersion;
final String assetBrowsePath = componentBrowsePath + "/" + lastSegment;
Component component = createComponent(componentName, commonPath, componentVersion);
Asset asset = createAsset(assetPath);
List<BrowsePaths> pathsAsset = generator.computeAssetPaths(asset, component);
List<BrowsePaths> pathsComponent = generator.computeComponentPaths(asset, component);
assertPaths(Arrays.asList(assetBrowsePath.split("/")), pathsAsset);
assertPaths(Arrays.asList(componentBrowsePath.split("/")), pathsComponent, true);
}
use of org.sonatype.nexus.repository.storage.Asset in project nexus-repository-r by sonatype-nexus-community.
the class RBrowseNodeGeneratorTest method shouldComputeAssetPathWithoutComponent.
@Test
public void shouldComputeAssetPathWithoutComponent() {
final String assetPath = "bin/macosx/el-capitan/contrib/3.6/devtools_2.2.1.tgz";
Asset asset = createAsset(assetPath);
List<BrowsePaths> pathsAsset = generator.computeAssetPaths(asset, null);
assertPaths(Arrays.asList(assetPath.split("/")), pathsAsset, false);
}
use of org.sonatype.nexus.repository.storage.Asset in project nexus-repository-r by sonatype-nexus-community.
the class RUploadHandler method handle.
@Override
public UploadResponse handle(final Repository repository, final ComponentUpload upload) throws IOException {
final AssetUpload assetUpload = upload.getAssetUploads().get(0);
final PartPayload payload = assetUpload.getPayload();
final Map<String, String> fields = assetUpload.getFields();
final String uploadPath = removeInitialSlashFromPath(fields.get(PATH_ID));
final String assetPath = buildPath(uploadPath, payload.getName());
ensurePermitted(repository.getName(), RFormat.NAME, assetPath, Collections.emptyMap());
validateArchiveUploadPath(assetPath);
try {
UnitOfWork.begin(repository.facet(StorageFacet.class).txSupplier());
Asset asset = repository.facet(RHostedFacet.class).upload(assetPath, payload);
return new UploadResponse(asset);
} finally {
UnitOfWork.end();
}
}
use of org.sonatype.nexus.repository.storage.Asset in project nexus-repository-r by sonatype-nexus-community.
the class RHostedIT method testDeletingRemainingAssetAlsoDeletesComponent.
@Test
public void testDeletingRemainingAssetAlsoDeletesComponent() {
final Asset asset = findAsset(repository, AGRICOLAE_121_TARGZ.fullPath);
assertNotNull(asset);
assertNotNull(asset.componentId());
final Component component = findComponentById(repository, asset.componentId());
assertNotNull(component);
assertThat(findAssetsByComponent(repository, component).size(), is(1));
componentAssetTestHelper.removeAsset(repository, AGRICOLAE_121_TARGZ.fullPath);
assertThat(componentAssetTestHelper.assetExists(repository, AGRICOLAE_121_TARGZ.fullPath), is(false));
assertThat(componentAssetTestHelper.componentExists(repository, AGRICOLAE_121_TARGZ.packageName, AGRICOLAE_121_TARGZ.packageVersion), is(false));
}
Aggregations