コード例 #1
0
  // clean
  protected RepositoryListResourceResponse listRepositories(
      Request request, boolean allReposes, boolean includeGroups) throws ResourceException {
    RepositoryListResourceResponse result = new RepositoryListResourceResponse();

    RepositoryListResource repoRes;

    Collection<Repository> repositories = getRepositoryRegistry().getRepositories();

    for (Repository repository : repositories) {
      // To save UI changes at the moment, not including groups in repo call
      if ((allReposes || repository.isUserManaged())
          && (includeGroups
              || !repository.getRepositoryKind().isFacetAvailable(GroupRepository.class))) {
        repoRes = new RepositoryListResource();

        repoRes.setResourceURI(createRepositoryReference(request, repository.getId()).toString());

        repoRes.setContentResourceURI(
            repositoryURLBuilder.getExposedRepositoryContentUrl(repository));

        repoRes.setRepoType(getRestRepoType(repository));

        repoRes.setProvider(NexusCompat.getRepositoryProviderHint(repository));

        repoRes.setProviderRole(NexusCompat.getRepositoryProviderRole(repository));

        repoRes.setFormat(repository.getRepositoryContentClass().getId());

        repoRes.setId(repository.getId());

        repoRes.setName(repository.getName());

        repoRes.setUserManaged(repository.isUserManaged());

        repoRes.setExposed(repository.isExposed());

        repoRes.setEffectiveLocalStorageUrl(repository.getLocalUrl());

        if (repository.getRepositoryKind().isFacetAvailable(MavenRepository.class)) {
          repoRes.setRepoPolicy(
              repository.adaptToFacet(MavenRepository.class).getRepositoryPolicy().toString());
        }

        if (repository.getRepositoryKind().isFacetAvailable(ProxyRepository.class)) {
          repoRes.setRemoteUri(repository.adaptToFacet(ProxyRepository.class).getRemoteUrl());
        }

        result.addData(repoRes);
      }
    }

    return result;
  }
コード例 #2
0
  /**
   * Tests listing a directory, when a contained file does NOT exists.
   *
   * @throws Exception
   */
  @SuppressWarnings({"unchecked"})
  @Test
  public void testListFilesThrowsItemNotFoundException() throws Exception {

    File repoLocation = new File(getBasedir(), "target/" + getClass().getSimpleName() + "/repo/");

    // the contents of the "valid" directory, only contains a "valid.txt" file
    File validDir = new File(repoLocation, "valid/");
    validDir.mkdirs();
    FileUtils.fileWrite(new File(validDir, "valid.txt"), "UTF-8", "something valid");
    Collection<File> validFileCollection = Arrays.asList(validDir.listFiles());

    // the contents of the "invalid" directory, this dir contains a missing file
    File invalidDir = new File(repoLocation, "invalid/");
    invalidDir.mkdirs();
    FileUtils.fileWrite(new File(invalidDir, "invalid.txt"), "UTF-8", "something valid");
    List<File> invalidFileCollection = new ArrayList<File>(Arrays.asList(invalidDir.listFiles()));
    invalidFileCollection.add(new File(invalidDir, "missing.txt"));

    // Mocks
    Wastebasket wastebasket = mock(Wastebasket.class);
    LinkPersister linkPersister = mock(LinkPersister.class);
    MimeSupport mimeUtil = mock(MimeSupport.class);

    // Mock FSPeer to return the results created above
    FSPeer fsPeer = mock(FSPeer.class);
    when(fsPeer.listItems(
            Mockito.any(Repository.class), Mockito.any(ResourceStoreRequest.class), eq(validDir)))
        .thenReturn(validFileCollection);
    when(fsPeer.listItems(
            Mockito.any(Repository.class),
            Mockito.any(ResourceStoreRequest.class),
            eq(new File(repoLocation, "invalid/"))))
        .thenReturn(invalidFileCollection);

    // create Repository Mock
    Repository repository = mock(Repository.class);
    when(repository.getId()).thenReturn("mock");
    when(repository.getRepositoryKind())
        .thenReturn(new DefaultRepositoryKind(HostedRepository.class, null));
    when(repository.getLocalUrl()).thenReturn(repoLocation.toURI().toURL().toString());
    AttributesHandler attributesHandler = mock(AttributesHandler.class);
    when(repository.getAttributesHandler()).thenReturn(attributesHandler);

    DefaultFSLocalRepositoryStorage localRepositoryStorageUnderTest =
        new DefaultFSLocalRepositoryStorage(wastebasket, linkPersister, mimeUtil, fsPeer);

    ResourceStoreRequest validRequest = new ResourceStoreRequest("valid");

    // positive test, valid.txt should be found
    Collection<StorageItem> items =
        localRepositoryStorageUnderTest.listItems(repository, validRequest);
    assertThat(items.iterator().next().getName(), equalTo("valid.txt"));
    assertThat(items, hasSize(1));

    // missing.txt was listed in this directory, but it does NOT exist, only invalid.txt should be
    // found
    ResourceStoreRequest invalidRequest = new ResourceStoreRequest("invalid");
    items = localRepositoryStorageUnderTest.listItems(repository, invalidRequest);
    assertThat(items.iterator().next().getName(), equalTo("invalid.txt"));
    assertThat(items, hasSize(1));
  }