use of org.sonatype.nexus.common.entity.EntityId in project nexus-repository-r by sonatype-nexus-community.
the class RRoutingRuleIT method testBlockedRoutingRule.
@Test
public void testBlockedRoutingRule() throws Exception {
String packageFileName = "agricolae_1.0-1.tar.gz";
String allowedPackagePath = "bin/macosx/el-capitan/contrib/1.0/agricolae_1.0-1.tar.gz";
String blockedPackagePath = "bin/macosx/el-capitan/contrib/1.1/agricolae_1.0-1.tar.gz";
configureProxyBehaviour(allowedPackagePath, packageFileName);
configureProxyBehaviour(blockedPackagePath, packageFileName);
EntityId routingRuleId = createBlockedRoutingRule("r-blocking-rule", ".*/1.1/.*");
Repository proxyRepo = repos.createRProxy("test-r-blocking-proxy", proxyServer.getUrl().toString());
RClient client = rClient(proxyRepo);
attachRuleToRepository(proxyRepo, routingRuleId);
assertGetResponseStatus(client, proxyRepo, blockedPackagePath, 403);
assertGetResponseStatus(client, proxyRepo, allowedPackagePath, 200);
assertNoRequests(blockedPackagePath);
}
use of org.sonatype.nexus.common.entity.EntityId in project nexus-repository-r by sonatype-nexus-community.
the class RComponentDirectorTest method allowMoveTest.
@Test
public void allowMoveTest() {
RComponentDirector director = new RComponentDirector(bucketStore, repositoryManager);
assertTrue(director.allowMoveTo(destination));
assertTrue(director.allowMoveFrom(source));
EntityId bucketId = mock(EntityId.class);
when(component.bucketId()).thenReturn(bucketId);
Bucket bucket = mock(Bucket.class);
when(bucketStore.getById(bucketId)).thenReturn(bucket);
when(bucket.getRepositoryName()).thenReturn("repo");
when(repositoryManager.get("repo")).thenReturn(source);
assertTrue(director.allowMoveTo(component, destination));
assertTrue(director.allowMoveTo(destination));
}
use of org.sonatype.nexus.common.entity.EntityId in project nexus-repository-r by sonatype-nexus-community.
the class RComponentMaintenance method deleteAssetTx.
/**
* Deletes the asset and its component if it's the only asset in it.
*/
@Override
@TransactionalDeleteBlob
protected Set<String> deleteAssetTx(final EntityId assetId, final boolean deleteBlob) {
StorageTx tx = UnitOfWork.currentTx();
final Asset asset = tx.findAsset(assetId, tx.findBucket(getRepository()));
if (asset == null) {
return Collections.emptySet();
}
final EntityId componentId = asset.componentId();
if (componentId == null) {
// Assets without components should be deleted on their own
return super.deleteAssetTx(assetId, deleteBlob);
}
final Component component = tx.findComponent(componentId);
if (Iterables.size(tx.browseAssets(component)) == 1) {
// Component with only one asset should be deleted as well with its asset
return deleteComponentTx(componentId, deleteBlob).getAssets();
} else {
return super.deleteAssetTx(assetId, deleteBlob);
}
}
Aggregations