Package jetbrains.buildServer.serverSide
Interface CustomDataStorage
-
- All Known Implementing Classes:
MockCustomDataStorage
public interface CustomDataStorageHolds custom data values- Since:
- 5.1
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static classCustomDataStorage.ConflictResolutionControls the conflicts resolution during the flush operation when in-memory data is being stored into the underlying persistent storage.
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description voidclear()Clears data in custom data storage.voiddispose()Disposes (destroys) this custom data storage.voidflush()Flushes data to the persistent storage immediately, otherwise flush is performed automatically with some delay.voidflush(CustomDataStorage.ConflictResolution conflictResolutionMode)Flushes data to the persistent storage immediately with the specified conflict resolution mode.DategetDataLoadTime()For a storage whose values have been loaded from the database returns the timestamp when the data was loaded.StringgetValue(String key)Returns value stored for the specified keyMap<String,String>getValues()Retrieves values from the storagebooleanisDirty()voidputValue(String key, String value)Puts specified value into the storage.voidputValues(Map<String,String> data)Puts values into the storage but does not flush the data yet, note that existing data will be completely overwritten.voidputValuesAndFlush(Map<String,String> data)Same asputValues(Map)but if storage is not created yet, then the method ensures that the storage will be created with the provided data so that other processes could see it's data immediately.voidrefresh()Refreshes data from the underlying storagevoidscheduleFlush()Performs flush of data asynchronously in a separate threadCustomDataStorage.ConflictResolution.IGNORE_OURSmode is used for the conflict resolution.voidupdateValues(Map<String,String> newOrChangedValues, Set<String> removedKeys)Puts values from newOrChangedValues map to the storage and removes keys provided via removedKeys set.
-
-
-
Method Detail
-
putValues
void putValues(@NotNull Map<String,String> data)Puts values into the storage but does not flush the data yet, note that existing data will be completely overwritten. If this is a new storage which is not yet flushed on disk or in database, then an empty record for this storage will be allocated and will become visible to other processes. But another process will see the storage with empty map of data until the process which created the storage flushes it.- Parameters:
data- custom data to put into the storage
-
updateValues
void updateValues(@NotNull Map<String,String> newOrChangedValues, @NotNull Set<String> removedKeys)Puts values from newOrChangedValues map to the storage and removes keys provided via removedKeys set. If removedKeys and newOrChangedValues map has the same key, then the value from newOrChangedValues will be stored and key won't be removed. If newOrChangedValues has null value for some key, then an exception will be thrown.- Parameters:
newOrChangedValues- new values to put in the storageremovedKeys- keys to remove from the storage- Since:
- 2022.04.2
-
putValuesAndFlush
void putValuesAndFlush(@NotNull Map<String,String> data)Same asputValues(Map)but if storage is not created yet, then the method ensures that the storage will be created with the provided data so that other processes could see it's data immediately. If the storage already exists, then this is equivalent to:putValues(map); flush();
-
getValues
@Nullable Map<String,String> getValues()
Retrieves values from the storage- Returns:
- custom data map or null if there were no data
-
getValue
@Nullable String getValue(@NotNull String key)
Returns value stored for the specified key- Parameters:
key- key- Returns:
- stored value or null
-
putValue
void putValue(@NotNull String key, @Nullable String value)Puts specified value into the storage. If value is null then data with specified key is removed from the storage.- Parameters:
key- keyvalue- value
-
flush
void flush()
Flushes data to the persistent storage immediately, otherwise flush is performed automatically with some delay.CustomDataStorage.ConflictResolution.IGNORE_OURSmode is used for the conflict resolution.
-
flush
void flush(@NotNull CustomDataStorage.ConflictResolution conflictResolutionMode) throws CustomDataConflictExceptionFlushes data to the persistent storage immediately with the specified conflict resolution mode.- Throws:
CustomDataConflictException- if a conflict is detected and the conflict resolution mode is set toCustomDataStorage.ConflictResolution.FAIL- Since:
- 2023.03
-
scheduleFlush
void scheduleFlush()
Performs flush of data asynchronously in a separate threadCustomDataStorage.ConflictResolution.IGNORE_OURSmode is used for the conflict resolution.- Since:
- 2022.04.1
-
clear
void clear()
Clears data in custom data storage. Same asputValues(Map)called with empty map.- Since:
- 10.0.2
-
dispose
void dispose()
Disposes (destroys) this custom data storage.- Since:
- 8.0
-
refresh
void refresh()
Refreshes data from the underlying storage- Since:
- 2018.2
-
isDirty
boolean isDirty()
- Returns:
- true if this custom data storage was modified but the data is not persisted yet
- Since:
- 2022.04.1
-
getDataLoadTime
@Nullable Date getDataLoadTime()
For a storage whose values have been loaded from the database returns the timestamp when the data was loaded. If the storage has been obtained but getValues() or getValue() methods were not called, then the data may not be loaded into the storage yet. In such cases null is returned as the load time. Storage modifications via put* methods do not affect the load time.- Returns:
- the timestamp of the last fetching of the storage data from the database
- Since:
- 2022.10.1
-
-