aQute.bnd.service
Interface RepositoryPlugin

All Known Subinterfaces:
InfoRepository, RemoteRepositoryPlugin
All Known Implementing Classes:
FileRepo, MavenRemoteRepository, MavenRepository, WorkspaceRepository

public interface RepositoryPlugin

A Repository Plugin abstract a bnd repository. This interface allows bnd to find programs from their bsn and revisions from their bsn-version combination. It is also possible to put revisions in a repository if the repository is not read only.


Nested Class Summary
static interface RepositoryPlugin.DownloadListener
          The caller can specify any number of DownloadListener objects that are called back when a download is finished (potentially before the get method has returned).
static class RepositoryPlugin.PutOptions
          Options used to steer the put operation
static class RepositoryPlugin.PutResult
          Results returned by the put operation
 
Field Summary
static RepositoryPlugin.PutOptions DEFAULTOPTIONS
           
 
Method Summary
 boolean canWrite()
          Answer if this repository can be used to store files.
 File get(String bsn, Version version, Map<String,String> properties, RepositoryPlugin.DownloadListener... listeners)
          Return a URL to a matching version of the given bundle.
 String getLocation()
          Return a location identifier of this repository
 String getName()
           
 List<String> list(String pattern)
          Return a list of bsns that are present in the repository.
 RepositoryPlugin.PutResult put(InputStream stream, RepositoryPlugin.PutOptions options)
          Put an artifact (from the InputStream) into the repository.

There is NO guarantee that the artifact on the input stream has not been modified after it's been put in the repository since that is dependent on the implementation of the repository (see RepositoryPlugin.PutOptions#allowArtifactChange).
 SortedSet<Version> versions(String bsn)
          Return a list of versions.
 

Field Detail

DEFAULTOPTIONS

static final RepositoryPlugin.PutOptions DEFAULTOPTIONS
Method Detail

put

RepositoryPlugin.PutResult put(InputStream stream,
                               RepositoryPlugin.PutOptions options)
                               throws Exception
Put an artifact (from the InputStream) into the repository.

There is NO guarantee that the artifact on the input stream has not been modified after it's been put in the repository since that is dependent on the implementation of the repository (see RepositoryPlugin.PutOptions#allowArtifactChange).

Parameters:
stream - The input stream with the artifact
options - The put options. See RepositoryPlugin.PutOptions, can be null, which will then take the default options like new PutOptions().
Returns:
The result of the put, never null. See RepositoryPlugin.PutResult
Throws:
Exception - When the repository root directory doesn't exist, when the repository is read-only, when the specified checksum doesn't match the checksum of the fetched artifact (see RepositoryPlugin.PutOptions.digest), when the implementation wants to modify the artifact but isn't allowed (see RepositoryPlugin.PutOptions#allowArtifactChange ), or when another error has occurred.

get

File get(String bsn,
         Version version,
         Map<String,String> properties,
         RepositoryPlugin.DownloadListener... listeners)
         throws Exception
Return a URL to a matching version of the given bundle.

If download listeners are specified then the returned file is not guaranteed to exist before a download listener is notified of success or failure. The callback can happen before the method has returned. If the returned file is null then download listeners are not called back.

The intention of the Download Listeners is to allow a caller to obtain references to files that do not yet exist but are to be downloaded. If the downloads were done synchronously in the call, then no overlap of downloads could take place.

Parameters:
bsn - Bundle-SymbolicName of the searched bundle
version - Version requested
listeners - Zero or more download listener that will be notified of the outcome.
Returns:
A file to the revision or null if not found
Throws:
Exception - when anything goes wrong, in this case no listeners will be called back.

canWrite

boolean canWrite()
Answer if this repository can be used to store files.

Returns:
true if writable

list

List<String> list(String pattern)
                  throws Exception
Return a list of bsns that are present in the repository.

Parameters:
pattern - A glob pattern to be matched against bsns present in the repository, or null.
Returns:
A list of bsns that match the pattern parameter or all if pattern is null; repositories that do not support browsing or querying should return an empty list.
Throws:
Exception

versions

SortedSet<Version> versions(String bsn)
                            throws Exception
Return a list of versions.

Throws:
Exception

getName

String getName()
Returns:
The name of the repository

getLocation

String getLocation()
Return a location identifier of this repository



Copyright © 2014 aQute SARL. All rights reserved.