public void createSnapshotRepo(String repoId) throws IOException { RepositoryResource repo = new RepositoryResource(); repo.setProvider("ivy"); repo.setFormat("maven2"); repo.setRepoPolicy("snapshot"); repo.setChecksumPolicy("ignore"); repo.setBrowseable(false); repo.setId(repoId); repo.setName(repoId); repo.setRepoType("hosted"); repo.setWritePolicy(RepositoryWritePolicy.ALLOW_WRITE.name()); repo.setDownloadRemoteIndexes(true); repo.setBrowseable(true); repo.setRepoPolicy(RepositoryPolicy.SNAPSHOT.name()); repo.setChecksumPolicy(ChecksumPolicy.IGNORE.name()); repo.setIndexable(true); // being sure!!! repoUtil.createRepository(repo); repo = (RepositoryResource) repoUtil.getRepository(repoId); // assert that the repository is created Assert.assertTrue(repo.isIndexable()); }
protected void createRepository(final String repoId) throws IOException { RepositoryResource repo = new RepositoryResource(); repo.setId(repoId); repo.setRepoType("hosted"); repo.setName(repoId); repo.setProvider("maven2"); repo.setFormat("maven2"); repo.setRepoPolicy(RepositoryPolicy.RELEASE.name()); repoUtil.createRepository(repo, false); }
@Test public void hostedTestRelRepoAndDeployFile() throws IOException, Exception { // create a release repository String repoId = "tmp-releases"; RepositoryResource repo = new RepositoryResource(); repo.setProvider("ivy"); repo.setFormat("maven2"); repo.setRepoPolicy("release"); repo.setChecksumPolicy("ignore"); repo.setBrowseable(false); repo.setId(repoId); repo.setName(repoId); repo.setRepoType("hosted"); repo.setWritePolicy(RepositoryWritePolicy.ALLOW_WRITE.name()); repo.setDownloadRemoteIndexes(true); repo.setBrowseable(true); repo.setRepoPolicy(RepositoryPolicy.RELEASE.name()); repo.setChecksumPolicy(ChecksumPolicy.IGNORE.name()); repo.setIndexable(true); // being sure!!! repoUtil.createRepository(repo); // firstly assert that repository is there repo = (RepositoryResource) repoUtil.getRepository(repoId); Assert.assertTrue(repo.isIndexable()); TaskScheduleUtil.waitForAllTasksToStop(); // then deploy a release artifact Gav gav = GavUtil.newGav("ivyRemover", "auth-mod", "1.0"); getDeployUtils().deployUsingGavWithRest(repoId, gav, getTestFile("simple-artifact.jar")); TaskScheduleUtil.waitForAllTasksToStop(); getEventInspectorsUtil().waitForCalmPeriod(); // secondly assert that the artifact is in the release repository List<NexusArtifact> result = getSearchMessageUtil().searchForGav(gav, repoId); Assert.assertEquals( result.size(), 1, "Results: \n" + XStreamFactory.getXmlXStream().toXML(result)); // thirdly assert that there is at least alltogether one release artifact in the release // repository result = getSearchMessageUtil().searchFor(Collections.singletonMap("q", "ivyRemover"), repoId); Assert.assertEquals( result.size(), 1, "Results: \n" + XStreamFactory.getXmlXStream().toXML(result)); }
private void createM1Repo( String repoId, RepositoryWritePolicy writePolicy, RepositoryPolicy releasePolicy) throws IOException { RepositoryResource repo = new RepositoryResource(); repo.setId(repoId); repo.setBrowseable(true); repo.setExposed(true); repo.setRepoType("hosted"); repo.setName(repoId); repo.setRepoPolicy(releasePolicy.name()); repo.setWritePolicy(writePolicy.name()); repo.setProvider("maven1"); repo.setFormat("maven1"); this.repoUtil.createRepository(repo); }
protected void createProxyRepository() throws Exception { RepositoryResource resource = new RepositoryResource(); resource.setProvider("maven2"); resource.setFormat("maven2"); resource.setRepoPolicy("release"); resource.setChecksumPolicy("ignore"); resource.setBrowseable(false); resource.setIndexable(false); resource.setId(PROXY_REPO_ID); resource.setName(PROXY_REPO_ID); resource.setRepoType("proxy"); resource.setWritePolicy(RepositoryWritePolicy.READ_ONLY.name()); resource.setDownloadRemoteIndexes(true); RepositoryResourceRemoteStorage remoteStorage = new RepositoryResourceRemoteStorage(); remoteStorage.setRemoteStorageUrl( getBaseNexusUrl() + "content/repositories/nexus-test-harness-repo/"); resource.setRemoteStorage(remoteStorage); resource.setRepoPolicy(RepositoryPolicy.RELEASE.name()); resource.setChecksumPolicy(ChecksumPolicy.IGNORE.name()); new RepositoryMessageUtil(this, this.getJsonXStream(), MediaType.APPLICATION_JSON) .createRepository(resource); }
/** Converting App model to REST DTO. */ public RepositoryBaseResource getRepositoryRestModel(Request request, Repository repository) { RepositoryResource resource = null; if (repository.getRepositoryKind().isFacetAvailable(ProxyRepository.class)) { resource = getRepositoryProxyRestModel(repository.adaptToFacet(ProxyRepository.class)); } else if (repository.getRepositoryKind().isFacetAvailable(ShadowRepository.class)) { return getRepositoryShadowRestModel(request, repository.adaptToFacet(ShadowRepository.class)); } else { resource = new RepositoryResource(); } resource.setContentResourceURI(repositoryURLBuilder.getExposedRepositoryContentUrl(repository)); resource.setProvider(NexusCompat.getRepositoryProviderHint(repository)); resource.setProviderRole(NexusCompat.getRepositoryProviderRole(repository)); resource.setFormat(repository.getRepositoryContentClass().getId()); resource.setRepoType(getRestRepoType(repository)); resource.setId(repository.getId()); resource.setName(repository.getName()); resource.setWritePolicy(repository.getWritePolicy().name()); resource.setBrowseable(repository.isBrowseable()); resource.setIndexable(repository.isSearchable()); resource.setExposed(repository.isExposed()); resource.setNotFoundCacheTTL(repository.getNotFoundCacheTimeToLive()); // TODO: remove the default local storage, this is a work around for NEXUS-1994 // the new 1.4 API doesn't store the default URL, well, it is part of the CRepo, but it is not // exposed. // so we can figure it out again, I think the default local Storage should be removed from the // REST message // which is part of the reason for not exposing it. The other part is it is not used anywhere // except to set // the localUrl if not already set. // apples to apples here, man i hate this section of code!!!! // always set to default (see AbstractRepositoryConfigurator) String defaultLocalStorageUrl = ((CRepositoryCoreConfiguration) repository.getCurrentCoreConfiguration()) .getConfiguration(false) .defaultLocalStorageUrl; resource.setDefaultLocalStorageUrl(defaultLocalStorageUrl); // if not user set (but using default), this is null, otherwise it contains user-set value String overrideLocalStorageUrl = ((CRepositoryCoreConfiguration) repository.getCurrentCoreConfiguration()) .getConfiguration(false) .getLocalStorage() .getUrl(); if (StringUtils.isNotBlank(overrideLocalStorageUrl)) { resource.setOverrideLocalStorageUrl(overrideLocalStorageUrl); } if (repository.getRepositoryKind().isFacetAvailable(MavenRepository.class)) { resource.setRepoPolicy( repository.adaptToFacet(MavenRepository.class).getRepositoryPolicy().toString()); if (repository.getRepositoryKind().isFacetAvailable(MavenProxyRepository.class)) { resource.setChecksumPolicy( repository.adaptToFacet(MavenProxyRepository.class).getChecksumPolicy().toString()); resource.setDownloadRemoteIndexes( repository.adaptToFacet(MavenProxyRepository.class).isDownloadRemoteIndexes()); } } // as this is a required field on ui, we need this to be set for non-maven type repos else { resource.setRepoPolicy(RepositoryPolicy.MIXED.name()); resource.setChecksumPolicy(ChecksumPolicy.IGNORE.name()); resource.setDownloadRemoteIndexes(false); } return resource; }