aQute.bnd.deployer.repository.api.IRepositoryContentProvider Maven / Gradle / Ivy
package aQute.bnd.deployer.repository.api;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URI;
import java.util.Set;
import org.osgi.service.log.LogService;
import aQute.bnd.service.Registry;
public interface IRepositoryContentProvider {
/**
* Get the name of this provider (keep it short!).
*/
String getName();
/**
* Parse the index provided via the input stream.
*
* @param stream The stream that provides the index data.
* @param baseUri
* @param processor
*/
void parseIndex(InputStream stream, URI baseUri, IRepositoryIndexProcessor processor, LogService log)
throws Exception;
/**
*
* Check the stream for compatibility with this provider.
*
*
*
* @param name The name of the stream, which may be the file name, or
* {@code null}. Providers can use this as a hint to the nature
* of the file.
* @param stream An input stream that MUST support mark/reset operations.
* @return Whether the stream can be handled by this provider.
* @throws IOException
*/
CheckResult checkStream(String name, InputStream stream) throws IOException;
/**
* Return whether the content provider supports index generation.
*/
boolean supportsGeneration();
/**
* Generate a new repository index to a stream. Clients must not call this
* method if the provider returns {@code false} from
* {@link #supportsGeneration()}.
*
* @param files The files to be indexed.
* @param output The output stream, on which the index should be written.
* @param repoName The name of the repository, which may be entered into the
* generated index.
* @param rootUri The URI of the repository.
* @param pretty Hint to request "pretty printing", i.e. uncompressed,
* indented output.
* @param registry The bnd workspace plug-in registry if available, or
* {@code null}.
* @param log The OSGi log service if available, or {@code
* null}.
* @throws Exception If any other error unrecoverable occurs.
*/
void generateIndex(Set files, OutputStream output, String repoName, URI rootUri, boolean pretty,
Registry registry, LogService log) throws Exception;
/**
* Get the default name for an index file supported by this provider;
* however the actual index file may take a different name if it is
* overridden by the user or build settings.
*
* @param pretty Whether the pretty-printing option will be used. Providers
* may return a different default file name depending on this
* value, e.g. a non-pretty file may be compressed with the
* {@code .gz} extension.
*/
String getDefaultIndexName(boolean pretty);
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy