Examples of ObrResourceWriter


Examples of org.sonatype.nexus.obr.metadata.ObrResourceWriter

    if (null == obrItem || obrItem.getModified() < backingItem.getModified()) {
      final boolean caching = obrConfiguration.isBundleCacheActive();

      ObrResourceReader reader = null;
      ObrResourceWriter writer = null;

      try {
        reader = obrMetadataSource.getReader(new ManagedObrSite((StorageFileItem) backingItem));
        writer = obrMetadataSource.getWriter(obrUid);

        for (Resource i = reader.readResource(); i != null; i = reader.readResource()) {
          if (caching && !"file".equals(i.getURL().getProtocol())) {
            writer.append(new CacheableResource(i));
          }
          else {
            writer.append(i);
          }
        }

        writer.complete(); // the OBR is only updated once the stream is complete and closed
      }
      catch (final IOException e) {
        throw new StorageException(e);
      }
      finally {
View Full Code Here

Examples of org.sonatype.nexus.obr.metadata.ObrResourceWriter

    final ObrSite testSite = openObrSite(testRepository, "/obr/samples/osgi_alliance_obr.zip");

    final RepositoryItemUid uid = testRepository.createUid("/obr/repository.xml");

    ObrResourceReader reader = obrMetadataSource.getReader(testSite);
    final ObrResourceWriter writer = obrMetadataSource.getWriter(uid);

    final Collection<Resource> bundles = new ArrayList<Resource>();

    Resource r;
    while ((r = reader.readResource()) != null) {
      bundles.add(r);
      writer.append(r);
      writer.flush();
    }

    assertEquals(2710, bundles.size());

    writer.complete();
    writer.close();

    reader = obrMetadataSource.getReader(openObrSite(uid));
    while ((r = reader.readResource()) != null) {
      assertTrue(bundles.remove(r));
    }
View Full Code Here

Examples of org.sonatype.nexus.obr.metadata.ObrResourceWriter

    final RepositoryItemUid uid1 = testRepository.createUid("/obr/samples/sample.xml");
    final RepositoryItemUid uid2 = testRepository.createUid("/obr/sample.xml");
    final RepositoryItemUid uid3 = testRepository.createUid("/sample.xml");

    ObrResourceReader reader = obrMetadataSource.getReader(openObrSite(uid1));
    ObrResourceWriter writer = obrMetadataSource.getWriter(uid2);

    final Collection<URL> urls = new ArrayList<URL>();

    Resource r;
    while ((r = reader.readResource()) != null) {
      urls.add(r.getURL());
      writer.append(r);
      writer.flush();
    }

    reader.close();
    writer.complete();
    writer.close();

    reader = obrMetadataSource.getReader(openObrSite(uid2));
    writer = obrMetadataSource.getWriter(uid3);

    while ((r = reader.readResource()) != null) {
      writer.append(r);
    }

    reader.close();
    writer.complete();
    writer.close();

    reader = obrMetadataSource.getReader(openObrSite(uid3));

    while ((r = reader.readResource()) != null) {
      urls.remove(r.getURL());
View Full Code Here

Examples of org.sonatype.nexus.obr.metadata.ObrResourceWriter

    RepositoryItemUid uid2 = testRepository.createUid("/obr/samples/long-package-name.xml.clone");
    RepositoryItemUid temp;

    for (int i = 0; i < 5; i++) {
      final ObrResourceReader reader = obrMetadataSource.getReader(openObrSite(uid1));
      final ObrResourceWriter writer = obrMetadataSource.getWriter(uid2);

      Resource r;
      while ((r = reader.readResource()) != null) {
        writer.append(r);
        writer.flush();
      }

      reader.close();
      writer.complete();
      writer.close();

      if (i > 0) {
        assertEquals(obrToString(uid1), obrToString(uid2));
      }
View Full Code Here

Examples of org.sonatype.nexus.obr.metadata.ObrResourceWriter

      }
    }

    if (null == obrItem || lastModified < modified) {
      ObrResourceReader reader = null;
      ObrResourceWriter writer = null;

      try {
        writer = obrMetadataSource.getWriter(createUid(request.getRequestPath()));
        for (final StorageFileItem f : memberObrItems) {
          try {
            reader = obrMetadataSource.getReader(new ManagedObrSite(f));
            for (Resource i = reader.readResource(); i != null; i = reader.readResource()) {
              writer.append(i);
            }
          }
          catch (final IOException e) {
            log.warn("Problem merging OBR metadata from " + f.getRepositoryItemUid(), e);
          }
          finally {
            IOUtils.closeQuietly(reader);
          }
        }

        writer.complete(); // the OBR is only updated once the stream is complete and closed
      }
      finally {
        IOUtils.closeQuietly(writer);
      }
View Full Code Here

Examples of org.sonatype.nexus.obr.metadata.ObrResourceWriter

   */
  public static void buildObr(final ObrMetadataSource source, final RepositoryItemUid uid, final Repository target,
                              final Walker walker)
      throws StorageException
  {
    final ObrResourceWriter writer = source.getWriter(uid);

    try {
      final AbstractFileWalkerProcessor obrProcessor = new AbstractFileWalkerProcessor()
      {
        @Override
        protected void processFileItem(final WalkerContext context, final StorageFileItem item)
            throws IOException
        {
          final Resource resource = source.buildResource(item);
          if (null != resource) {
            writer.append(resource);
          }
        }
      };

      final ResourceStoreRequest request = new ResourceStoreRequest("/");
      final DefaultWalkerContext ctx = new DefaultWalkerContext(target, request, new ObrWalkerFilter());
      ctx.getProcessors().add(obrProcessor);
      walker.walk(ctx);

      writer.complete(); // the OBR is only updated once the stream is complete and closed
    }
    catch (final WalkerException e) {
      writer.complete();
    }
    finally {
      IOUtils.closeQuietly(writer);
    }
  }
View Full Code Here

Examples of org.sonatype.nexus.obr.metadata.ObrResourceWriter

   */
  public static void updateObr(final ObrMetadataSource source, final RepositoryItemUid uid, final Resource resource,
                               boolean adding)
      throws StorageException
  {
    ObrResourceWriter writer = null;
    ObrResourceReader reader = null;

    try {
      writer = source.getWriter(uid);
      reader = source.getReader(new ManagedObrSite(retrieveObrItem(uid.getRepository())));
      for (Resource i = reader.readResource(); i != null; i = reader.readResource()) {
        if (i.equals(resource)) {
          if (adding) // only update once, remove any duplicates
          {
            writer.append(resource);
            adding = false;
          }
        }
        else {
          writer.append(i);
        }
      }

      if (adding) // not seen this resource before
      {
        writer.append(resource);
      }

      writer.complete(); // the OBR is only updated once the stream is complete and closed
    }
    catch (final IOException e) {
      throw new StorageException(e);
    }
    finally {
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.