use of org.sonatype.nexus.repository.storage.Asset in project nexus-repository-r by sonatype-nexus-community.
the class RPackagesBuilderTest method createAsset.
private Asset createAsset(final String assetName, final String packageName, final String packageVersion) {
NestedAttributesMap formatAttributes = mock(NestedAttributesMap.class);
when(formatAttributes.get(P_PACKAGE, String.class)).thenReturn(packageName);
when(formatAttributes.get(P_VERSION, String.class)).thenReturn(packageVersion);
when(formatAttributes.get(P_DEPENDS, String.class)).thenReturn("Depends:" + assetName);
when(formatAttributes.get(P_IMPORTS, String.class)).thenReturn("Imports:" + assetName);
when(formatAttributes.get(P_SUGGESTS, String.class)).thenReturn("Suggests:" + assetName);
when(formatAttributes.get(P_LINKINGTO, String.class)).thenReturn("LinkingTo:" + assetName);
when(formatAttributes.get(P_LICENSE, String.class)).thenReturn("License:" + assetName);
when(formatAttributes.get(P_NEEDS_COMPILATION, String.class)).thenReturn("NeedsCompilation:" + assetName);
Asset asset = mock(Asset.class);
when(asset.formatAttributes()).thenReturn(formatAttributes);
when(asset.name()).thenReturn(assetName);
return asset;
}
use of org.sonatype.nexus.repository.storage.Asset in project nexus-repository-r by sonatype-nexus-community.
the class RRestoreBlobIT method runBlobRestore.
private void runBlobRestore(final boolean isDryRun) {
Asset asset;
Blob blob;
try (StorageTx tx = getStorageTx(proxyRepository)) {
tx.begin();
asset = tx.findAssetWithProperty(AssetEntityAdapter.P_NAME, AGRICOLAE_131_TARGZ.fullPath, tx.findBucket(proxyRepository));
assertThat(asset, Matchers.notNullValue());
blob = tx.getBlob(asset.blobRef());
}
testHelper.simulateAssetMetadataLoss();
Properties properties = new Properties();
properties.setProperty(HEADER_PREFIX + REPO_NAME_HEADER, proxyRepository.getName());
properties.setProperty(HEADER_PREFIX + BLOB_NAME_HEADER, asset.name());
properties.setProperty(HEADER_PREFIX + CONTENT_TYPE_HEADER, asset.contentType());
rRestoreBlobStrategy.restore(properties, blob, BlobStoreManager.DEFAULT_BLOBSTORE_NAME, isDryRun);
}
use of org.sonatype.nexus.repository.storage.Asset in project nexus-repository-r by sonatype-nexus-community.
the class RHostedFacetImpl method getStoredContent.
@Override
@TransactionalTouchBlob
public Content getStoredContent(final String contentPath) {
checkNotNull(contentPath);
StorageTx tx = UnitOfWork.currentTx();
Asset asset = findAsset(tx, tx.findBucket(getRepository()), contentPath);
if (asset == null) {
return null;
}
if (asset.markAsDownloaded()) {
tx.saveAsset(asset);
}
return toContent(asset, tx.requireBlob(asset.requireBlobRef()));
}
use of org.sonatype.nexus.repository.storage.Asset in project nexus-repository-r by sonatype-nexus-community.
the class RHostedFacetImpl method buildAndPutPackagesGz.
@Override
@TransactionalTouchMetadata
public Content buildAndPutPackagesGz(final String basePath) throws IOException {
checkNotNull(basePath);
StorageTx tx = UnitOfWork.currentTx();
RPackagesBuilder packagesBuilder = new RPackagesBuilder();
Iterable<Asset> archiveAssets = browseAllAssetsByKind(tx, tx.findBucket(getRepository()), ARCHIVE);
// packageInfoBuilder doesn't support multithreading
StreamSupport.stream(archiveAssets.spliterator(), false).filter(asset -> basePath.equals(getBasePath(asset.name()))).forEach(packagesBuilder::append);
byte[] packagesBytes = packagesBuilder.buildPackagesGz();
StorageFacet storageFacet = getRepository().facet(StorageFacet.class);
try (InputStream is = new ByteArrayInputStream(packagesBytes)) {
TempBlob tempPackagesGz = storageFacet.createTempBlob(is, RFacetUtils.HASH_ALGORITHMS);
return doPutPackagesGz(tx, basePath, tempPackagesGz);
}
}
use of org.sonatype.nexus.repository.storage.Asset in project nexus-repository-r by sonatype-nexus-community.
the class RHostedFacetImpl method doPutPackagesGz.
@TransactionalStoreBlob
protected Content doPutPackagesGz(final StorageTx tx, final String basePath, final TempBlob tempPackagesGz) throws IOException {
RFacet rFacet = facet(RFacet.class);
Asset asset = rFacet.findOrCreateAsset(tx, buildPath(basePath, PACKAGES_GZ_FILENAME));
return saveAsset(tx, asset, tempPackagesGz, "", null);
}
Aggregations