saker.nest Documentation TaskDoc JavaDoc Packages
public interface LocalBundleStorageView extends BundleStorageView
BundleStorageView subinterface that represents a bundle storage backed by the local file system.

The bundles in this storage is stored on the local file system in a directory. This directory is under an implementation dependent directory based on the repository storage directory by default.

The bundles in the storage are accessible to all processes on the local machine. The storage supports concurrent reading and modification of the storage by different processes.

Bundles can be added to the storage using the install(StreamWritable) function.

Using the local bundle storage with build clusters may not work.

This interface is not to be implemented by clients.

Nested types
public interface
Holds information about a bundle installation operation.
Fields
public static final String
The default name of a local bundle storage if omitted by the user in the configuration.
public static final String
Parameter specifying the root storage directory for the local bundle storage.
Methods
public InstallResult
install(StreamWritable bundlecontents)
Installs the bundle specified by the argument contents to this bundle storage.
public static final String DEFAULT_STORAGE_NAME = "local"
The default name of a local bundle storage if omitted by the user in the configuration.
public static final String PARAMETER_ROOT = "root"
Parameter specifying the root storage directory for the local bundle storage.

The parameter must be prefixed by the repository identifier and storage name in the following format:

 <repo-id>.<storage-name>.<param>
 
The parameter value can be an absolute path on the local file system that specifies the root directory that the local storage should use to store and retrieve bundles.

It can also be a relative path in wich case it will be resolved against the repository storage directory.

The default value is in an implementation dependent subdirectory of the repository storage directory.

Installs the bundle specified by the argument contents to this bundle storage.

This method will examine and validate the bundle contents, and will install it to the local storage. If there are already bundles with the same identifier, they will be overwritten.

When this method is called during a build execution, the contents of the installed bundle will not be visible in the same build execution that was used to install it. This is to avoid ambiguity, and encourage deterministic builds. Therefore any tasks that are present in the bundle cannot be used in the build that installed the bundle.

The method implementation may not install the bundle to its target location right away. To ensure concurrent access to the storage, the implementation may place the bundle to a pending location that is in a different location than the usual one. These pending bundles will be installed to their final location when the storage implementation sees appropriate. Normally users don't need to specially handle this scenario in any way.

After this method returns, the bundle contents represented by the argument may be freely modified without having an effect on the installed bundle.

bundlecontentsThe bundle contents.
The result of the bundle installation.
NullPointerExceptionIf the argument is null.
IOExceptionIn case of I/O error.
UnsupportedOperationExceptionIf bundle installation is not supported to this storage.
InvalidNestBundleExceptionIf the bundle content validation failed.