Class AbstractArtifactRepository
- java.lang.Object
-
- org.eclipse.core.runtime.PlatformObject
-
- org.eclipse.equinox.p2.repository.spi.AbstractRepository<IArtifactKey>
-
- org.eclipse.equinox.p2.repository.artifact.spi.AbstractArtifactRepository
-
- All Implemented Interfaces:
IAdaptable
,IQueryable<IArtifactKey>
,IArtifactRepository
,IRepository<IArtifactKey>
public abstract class AbstractArtifactRepository extends AbstractRepository<IArtifactKey> implements IArtifactRepository
The common base class for all artifact repository implementations. Clients must subclass this class to create their own repository implementations.This base class provides default implementations of all methods that modify the repository. These default methods throw an exception if
AbstractRepository.isModifiable()
returnsfalse
. Therefore a client can implement a read-only repository by overriding only the abstract methods.- Since:
- 2.0
-
-
Field Summary
-
Fields inherited from interface org.eclipse.equinox.p2.repository.artifact.IArtifactRepository
CODE_RETRY, PROP_RUNNABLE
-
Fields inherited from interface org.eclipse.equinox.p2.repository.IRepository
ENABLED, NONE, PREFERENCE_NODE, PROP_COMPRESSED, PROP_DESCRIPTION, PROP_MIRRORS_BASE_URL, PROP_MIRRORS_URL, PROP_NAME, PROP_NICKNAME, PROP_PASSWORD, PROP_SYSTEM, PROP_TIMESTAMP, PROP_USERNAME, TYPE_ARTIFACT, TYPE_METADATA
-
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
addDescriptor(IArtifactDescriptor descriptor)
Deprecated.UseaddDescriptor(IArtifactDescriptor, IProgressMonitor)
instead.void
addDescriptor(IArtifactDescriptor descriptor, IProgressMonitor monitor)
Add the given descriptor to the set of descriptors in this repository.void
addDescriptors(IArtifactDescriptor[] descriptors)
Deprecated.void
addDescriptors(IArtifactDescriptor[] descriptors, IProgressMonitor monitor)
Add the given artifact descriptors to this repositoryabstract boolean
contains(IArtifactKey key)
Returns true if this repository contains the given artifact key.abstract boolean
contains(IArtifactDescriptor descriptor)
Returns true if this repository contains the given descriptor.IArtifactDescriptor
createArtifactDescriptor(IArtifactKey key)
Create an instance ofIArtifactDescriptor
based on the given keyIArtifactKey
createArtifactKey(String classifier, String id, Version version)
Create an instance ofIArtifactKey
boolean
equals(Object o)
IStatus
executeBatch(IRunnableWithProgress runnable, IProgressMonitor monitor)
Executes a runnable against this repository.abstract IStatus
getArtifact(IArtifactDescriptor descriptor, OutputStream destination, IProgressMonitor monitor)
Writes to the given output stream the bytes represented by the artifact descriptor.abstract IArtifactDescriptor[]
getArtifactDescriptors(IArtifactKey key)
Return the set of artifact descriptors describing the ways that this repository can supply the artifact associated with the given artifact keyabstract IStatus
getArtifacts(IArtifactRequest[] requests, IProgressMonitor monitor)
Executes the given artifact requests on this byte server.abstract OutputStream
getOutputStream(IArtifactDescriptor descriptor)
Open an output stream to which a client can write the data for the given artifact descriptor.int
hashCode()
void
removeAll()
Deprecated.UseremoveAll(IProgressMonitor)
instead.void
removeAll(IProgressMonitor monitor)
Remove the all keys, descriptors, and contents from this repository.void
removeDescriptor(IArtifactKey key)
Deprecated.UseremoveDescriptor(IArtifactKey, IProgressMonitor)
instead.void
removeDescriptor(IArtifactKey key, IProgressMonitor monitor)
Remove the given key and all related content and descriptors from this repository.void
removeDescriptor(IArtifactDescriptor descriptor)
Deprecated.void
removeDescriptor(IArtifactDescriptor descriptor, IProgressMonitor monitor)
Remove the given descriptor and its corresponding content in this repository.void
removeDescriptors(IArtifactKey[] keys)
Deprecated.UseremoveDescriptors(IArtifactKey[], IProgressMonitor)
instead.void
removeDescriptors(IArtifactKey[] keys, IProgressMonitor monitor)
Remove the given list of keys and all related content and descriptors from this repository.void
removeDescriptors(IArtifactDescriptor[] descriptors)
Deprecated.void
removeDescriptors(IArtifactDescriptor[] descriptors, IProgressMonitor monitor)
Remove the given list of artifact descriptors and their corresponding content in this repository.-
Methods inherited from class org.eclipse.equinox.p2.repository.spi.AbstractRepository
assertModifiable, getDescription, getLocation, getName, getProperties, getProperty, getProvider, getProvisioningAgent, getType, getVersion, isModifiable, setDescription, setLocation, setName, setProperties, setProperty, setProperty, setProvider, setType, setVersion
-
Methods inherited from class org.eclipse.core.runtime.PlatformObject
getAdapter
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.eclipse.core.runtime.IAdaptable
getAdapter
-
Methods inherited from interface org.eclipse.equinox.p2.repository.artifact.IArtifactRepository
descriptorQueryable, getRawArtifact
-
Methods inherited from interface org.eclipse.equinox.p2.query.IQueryable
query
-
Methods inherited from interface org.eclipse.equinox.p2.repository.IRepository
getDescription, getLocation, getName, getProperties, getProperty, getProvider, getProvisioningAgent, getType, getVersion, isModifiable, setProperty, setProperty
-
-
-
-
Method Detail
-
contains
public abstract boolean contains(IArtifactDescriptor descriptor)
Description copied from interface:IArtifactRepository
Returns true if this repository contains the given descriptor.- Specified by:
contains
in interfaceIArtifactRepository
- Parameters:
descriptor
- the descriptor to query- Returns:
- true if the given descriptor is already in this repository
-
contains
public abstract boolean contains(IArtifactKey key)
Description copied from interface:IArtifactRepository
Returns true if this repository contains the given artifact key.- Specified by:
contains
in interfaceIArtifactRepository
- Parameters:
key
- the key to query- Returns:
- true if the given key is already in this repository
-
getArtifact
public abstract IStatus getArtifact(IArtifactDescriptor descriptor, OutputStream destination, IProgressMonitor monitor)
Description copied from interface:IArtifactRepository
Writes to the given output stream the bytes represented by the artifact descriptor. Any processing steps defined by the descriptor will be applied to the artifact bytes before they are sent to the provided output stream.- Specified by:
getArtifact
in interfaceIArtifactRepository
- Parameters:
descriptor
- the descriptor to transferdestination
- the stream to write the final artifact output tomonitor
- a progress monitor, ornull
if progress reporting and cancellation are not desired- Returns:
- the result of the artifact transfer
-
getArtifactDescriptors
public abstract IArtifactDescriptor[] getArtifactDescriptors(IArtifactKey key)
Description copied from interface:IArtifactRepository
Return the set of artifact descriptors describing the ways that this repository can supply the artifact associated with the given artifact key- Specified by:
getArtifactDescriptors
in interfaceIArtifactRepository
- Parameters:
key
- the artifact key to lookup- Returns:
- the descriptors associated with the given key
-
getArtifacts
public abstract IStatus getArtifacts(IArtifactRequest[] requests, IProgressMonitor monitor)
Description copied from interface:IArtifactRepository
Executes the given artifact requests on this byte server.- Specified by:
getArtifacts
in interfaceIArtifactRepository
- Parameters:
requests
- The artifact requestsmonitor
- A progress monitor use to track progress and cancel the operation.- Returns:
- a status object that is
OK
if requests were processed successfully. Otherwise, a status indicating information, warnings, or errors that occurred while executing the artifact requests
-
getOutputStream
public abstract OutputStream getOutputStream(IArtifactDescriptor descriptor) throws ProvisionException
Description copied from interface:IArtifactRepository
Open an output stream to which a client can write the data for the given artifact descriptor.- Specified by:
getOutputStream
in interfaceIArtifactRepository
- Parameters:
descriptor
- the descriptor describing the artifact data to be written to the resultant stream- Returns:
- the stream to which the artifact content can be written. The returned output
stream may implement
IStateful
. - Throws:
ProvisionException
- if the output stream could not be created. Reasons include:- An I/O exception occurred (@link
ProvisionException.REPOSITORY_FAILED_WRITE
) . - An artifact already exists at that location (
ProvisionException.ARTIFACT_EXISTS
).
- An I/O exception occurred (@link
-
addDescriptor
public void addDescriptor(IArtifactDescriptor descriptor, IProgressMonitor monitor)
Description copied from interface:IArtifactRepository
Add the given descriptor to the set of descriptors in this repository. This is a relatively low-level operation that should be used only when the actual related content is in this repository and the given descriptor accurately describes that content.- Specified by:
addDescriptor
in interfaceIArtifactRepository
- Parameters:
descriptor
- the descriptor to add.monitor
- A progress monitor use to track progress and cancel the operation. This may be a long running operation if another process holds the lock on this location- Since:
- 2.1
-
addDescriptor
@Deprecated public void addDescriptor(IArtifactDescriptor descriptor)
Deprecated.UseaddDescriptor(IArtifactDescriptor, IProgressMonitor)
instead.Description copied from interface:IArtifactRepository
Add the given descriptor to the set of descriptors in this repository. This is a relatively low-level operation that should be used only when the actual related content is in this repository and the given descriptor accurately describes that content.- Specified by:
addDescriptor
in interfaceIArtifactRepository
- Parameters:
descriptor
- the descriptor to add.
-
addDescriptors
public void addDescriptors(IArtifactDescriptor[] descriptors, IProgressMonitor monitor)
Add the given artifact descriptors to this repository- Specified by:
addDescriptors
in interfaceIArtifactRepository
- Parameters:
descriptors
- the artifact descriptors to addmonitor
- A progress monitor use to track progress and cancel the operation. This may be a long running operation if another process holds the lock on this location- Since:
- 2.1
-
addDescriptors
@Deprecated public void addDescriptors(IArtifactDescriptor[] descriptors)
Deprecated.Description copied from interface:IArtifactRepository
Add the given artifact descriptors to this repository- Specified by:
addDescriptors
in interfaceIArtifactRepository
- Parameters:
descriptors
- the artifact descriptors to add
-
removeDescriptor
public void removeDescriptor(IArtifactDescriptor descriptor, IProgressMonitor monitor)
Remove the given descriptor and its corresponding content in this repository.- Specified by:
removeDescriptor
in interfaceIArtifactRepository
- Parameters:
descriptor
- the descriptor to remove.monitor
- A progress monitor use to track progress and cancel the operation. This may be a long running operation if another process holds the lock on this location- Since:
- 2.1
-
removeDescriptor
@Deprecated public void removeDescriptor(IArtifactDescriptor descriptor)
Deprecated.Description copied from interface:IArtifactRepository
Remove the given descriptor and its corresponding content in this repository.- Specified by:
removeDescriptor
in interfaceIArtifactRepository
- Parameters:
descriptor
- the descriptor to remove.
-
removeDescriptors
public void removeDescriptors(IArtifactDescriptor[] descriptors, IProgressMonitor monitor)
Remove the given list of artifact descriptors and their corresponding content in this repository.- Specified by:
removeDescriptors
in interfaceIArtifactRepository
- Parameters:
descriptors
- the list of descriptors to removemonitor
- A progress monitor use to track progress and cancel the operation. This may be a long running operation if another process holds the lock on this location- Since:
- 2.1
-
removeDescriptors
@Deprecated public void removeDescriptors(IArtifactDescriptor[] descriptors)
Deprecated.Remove the given list of artifact descriptors and their corresponding content in this repository.- Specified by:
removeDescriptors
in interfaceIArtifactRepository
- Parameters:
descriptors
- the list of descriptors to remove- Since:
- 2.1
-
removeDescriptor
public void removeDescriptor(IArtifactKey key, IProgressMonitor monitor)
Remove the given key and all related content and descriptors from this repository.- Specified by:
removeDescriptor
in interfaceIArtifactRepository
- Parameters:
key
- the key to remove.monitor
- A progress monitor use to track progress and cancel the operation. This may be a long running operation if another process holds the lock on this location- Since:
- 2.1
-
removeDescriptor
@Deprecated public void removeDescriptor(IArtifactKey key)
Deprecated.UseremoveDescriptor(IArtifactKey, IProgressMonitor)
instead.Description copied from interface:IArtifactRepository
Remove the given key and all related content and descriptors from this repository.- Specified by:
removeDescriptor
in interfaceIArtifactRepository
- Parameters:
key
- the key to remove.
-
removeDescriptors
public void removeDescriptors(IArtifactKey[] keys, IProgressMonitor monitor)
Remove the given list of keys and all related content and descriptors from this repository.- Specified by:
removeDescriptors
in interfaceIArtifactRepository
- Parameters:
keys
- The keys to remove.monitor
- A progress monitor use to track progress and cancel the operation. This may be a long running operation if another process holds the lock on this location- Since:
- 2.1
-
removeDescriptors
@Deprecated public void removeDescriptors(IArtifactKey[] keys)
Deprecated.UseremoveDescriptors(IArtifactKey[], IProgressMonitor)
instead.Remove the given list of keys and all related content and descriptors from this repository.- Specified by:
removeDescriptors
in interfaceIArtifactRepository
- Parameters:
keys
- The keys to remove.- Since:
- 2.1
-
removeAll
public void removeAll(IProgressMonitor monitor)
Description copied from interface:IArtifactRepository
Remove the all keys, descriptors, and contents from this repository.- Specified by:
removeAll
in interfaceIArtifactRepository
- Parameters:
monitor
- A progress monitor use to track progress and cancel the operation. This may be a long running operation if another process holds the lock on this location- Since:
- 2.1
-
removeAll
@Deprecated public void removeAll()
Deprecated.UseremoveAll(IProgressMonitor)
instead.Description copied from interface:IArtifactRepository
Remove the all keys, descriptors, and contents from this repository.- Specified by:
removeAll
in interfaceIArtifactRepository
-
createArtifactDescriptor
public IArtifactDescriptor createArtifactDescriptor(IArtifactKey key)
Description copied from interface:IArtifactRepository
Create an instance ofIArtifactDescriptor
based on the given key- Specified by:
createArtifactDescriptor
in interfaceIArtifactRepository
- Parameters:
key
-IArtifactKey
- Returns:
- a new instance of IArtifactDescriptor
-
createArtifactKey
public IArtifactKey createArtifactKey(String classifier, String id, Version version)
Description copied from interface:IArtifactRepository
Create an instance ofIArtifactKey
- Specified by:
createArtifactKey
in interfaceIArtifactRepository
- Parameters:
classifier
- The classifier for this artifact key.id
- The id for this artifact key.version
- The version for this artifact key.- Returns:
- a new IArtifactKey
-
executeBatch
public IStatus executeBatch(IRunnableWithProgress runnable, IProgressMonitor monitor)
Description copied from interface:IArtifactRepository
Executes a runnable against this repository. It is up to the repository implementor to determine what "batch process" means, for example, it may mean that the repository index is not stored until after the runnable completes. The runnable should not execute anything in a separate thread.- Specified by:
executeBatch
in interfaceIArtifactRepository
- Parameters:
runnable
- The runnable to executemonitor
- A progress monitor that will be passed to the runnable- Returns:
- The result of running the runnable. Any exceptions thrown during the execution will be returned in the status.
-
-