public class JcloudsBlobStoreBasedObjectStore extends java.lang.Object implements PersistenceObjectStore
PersistenceObjectStore.StoreObjectAccessor, PersistenceObjectStore.StoreObjectAccessorWithLock| Constructor and Description |
|---|
JcloudsBlobStoreBasedObjectStore(JcloudsLocation location,
java.lang.String containerName) |
JcloudsBlobStoreBasedObjectStore(java.lang.String locationSpec,
java.lang.String containerName) |
| Modifier and Type | Method and Description |
|---|---|
void |
close()
Closes all resources used by this ObjectStore.
|
void |
createSubPath(java.lang.String subPath)
create the directory at the given subPath relative to the base of this store
|
void |
deleteCompletely()
Entirely delete the contents of this persistence location.
|
org.jclouds.blobstore.BlobStoreContext |
getBlobStoreContext() |
java.lang.String |
getContainerName() |
java.lang.String |
getSummaryName()
human-readable name of this object store
|
void |
injectManagementContext(ManagementContext mgmt)
Allows a way for an object store to be created ahead of time, and a mgmt context injected.
|
java.util.List<java.lang.String> |
listContentsWithSubPath(java.lang.String parentSubPath)
Lists the paths of objects contained at the given path, including the subpath.
|
PersistenceObjectStore.StoreObjectAccessor |
newAccessor(java.lang.String path)
For reading/writing data to the item at the given path.
|
void |
prepareForMasterUse()
Prepares the persistence store for "contentious writes".
|
void |
prepareForSharedUse(PersistMode persistMode,
HighAvailabilityMode haMode)
Prepares the persistence store for read use and non-contentious write use,
in particular detecting whether we should clean or register a need for backup etc.
|
java.lang.String |
toString() |
public JcloudsBlobStoreBasedObjectStore(java.lang.String locationSpec,
java.lang.String containerName)
public JcloudsBlobStoreBasedObjectStore(JcloudsLocation location, java.lang.String containerName)
public java.lang.String getSummaryName()
PersistenceObjectStoregetSummaryName in interface PersistenceObjectStorepublic org.jclouds.blobstore.BlobStoreContext getBlobStoreContext()
public void prepareForMasterUse()
PersistenceObjectStore
Caller must call PersistenceObjectStore.prepareForSharedUse(PersistMode, HighAvailabilityMode) first
(and PersistenceObjectStore.injectManagementContext(ManagementContext) before that).
This is typically invoked "at the last moment" e.g. before the any such write, mainly in order to prevent backups being made unnecessarily (e.g. if a node is standby, or if it tries to become master but is not capable), but also to prevent simultaneous backups which can cause problems with some stores (only a mgmt who knows he is the master should invoke this).
prepareForMasterUse in interface PersistenceObjectStorepublic java.lang.String getContainerName()
public void createSubPath(java.lang.String subPath)
PersistenceObjectStorecreateSubPath in interface PersistenceObjectStorepublic PersistenceObjectStore.StoreObjectAccessor newAccessor(java.lang.String path)
PersistenceObjectStore
Clients should wrap in a dedicated StoreObjectAccessorLocking and share
if multiple threads may be accessing the store.
This method may be changed in future to allow access to a shared locking accessor.
newAccessor in interface PersistenceObjectStorepublic java.util.List<java.lang.String> listContentsWithSubPath(java.lang.String parentSubPath)
PersistenceObjectStorePersistenceObjectStore.newAccessor(String).listContentsWithSubPath in interface PersistenceObjectStorepublic void close()
PersistenceObjectStoreclose in interface PersistenceObjectStorepublic java.lang.String toString()
toString in class java.lang.Objectpublic void injectManagementContext(ManagementContext mgmt)
PersistenceObjectStore
A ManagementContext must be supplied via constructor or this method before invoking other methods.
injectManagementContext in interface PersistenceObjectStorepublic void prepareForSharedUse(@Nullable
PersistMode persistMode,
HighAvailabilityMode haMode)
PersistenceObjectStorePersistenceObjectStore.injectManagementContext(ManagementContext),
but before PersistenceObjectStore.prepareForMasterUse().
See PersistenceObjectStore.prepareForMasterUse() for discussion of "contentious writes".
prepareForSharedUse in interface PersistenceObjectStorepublic void deleteCompletely()
PersistenceObjectStoredeleteCompletely in interface PersistenceObjectStore