aQute.maven.api.Release Maven / Gradle / Ivy
The newest version!
package aQute.maven.api;
import java.io.Closeable;
import java.io.File;
import java.io.InputStream;
import org.osgi.annotation.versioning.ProviderType;
/**
* This object can be used to release a revision. The actual work will be done
* when this object is closed. This makes it convenient to do this in a
* try/resource block.
*/
@ProviderType
public interface Release extends Closeable {
/**
* Set this release to abort
*/
void abort();
/**
* Add an archive
*/
void add(Archive archive, InputStream in) throws Exception;
/**
* Add an archive, a copy of the file is made
*/
void add(Archive archive, File in) throws Exception;
/**
* Add an archive
*/
void add(String extension, String classifier, InputStream in) throws Exception;
/**
* Set the replacement for the SNAPSHOT part
*
* @throws Exception
*/
void setBuild(long timestamp, String build) throws Exception;
/**
* Set the replacement for the SNAPSHOT part
*/
void setBuild(String timestamp, String build);
/**
* Ensure that no remote update is done
*/
void setLocalOnly();
/**
* Force an overwrite even if the artifact exists
*/
void force();
}