Additional top-level class in compilation unit: CacheLock.
The PropertyConglomerate contains one row with 2 columns per property. Column 0 is the UTF key, and column 1 is the data.
The property conglomerate manages the storage of database properties and thier defaults. Each property is stored as a row in the PropertyConglomerate
In general a propery default defines it value if the property itself is not defined.
Because the properties conglomerate is stored in a conglomerate the information it contains is not available before the raw store runs recovery. To make a small number of properties (listed in servicePropertyList) available during early boot, this copies them to services.properties.
| Modifier and Type | Field and Description |
|---|---|
| private CacheLock | |
| private Dictionary | |
| private LockFactory | |
| private PropertyFactory | |
| protected long | |
| protected Properties |
| Access | Constructor and Description |
|---|---|
| pack-priv | PropertyConglomerate(TransactionController tc, boolean create, Properties serviceProperties, PropertyFactory pf)
|
| Modifier and Type | Method and Description |
|---|---|
| private boolean | |
| private <K, V> Dictionary | |
| private static Object | findServiceModule(final Object serviceModule, final String factoryInterface)
Must be private so that user code can't call this entry point. |
| private Dictionary | |
| private Serializable | |
| private Serializable | |
| pack-priv Properties | |
| public void | getProperties(TransactionController tc, Dictionary<Object, Object> d, boolean stringsOnly, boolean defaultsOnly)
|
| pack-priv Serializable | Returns: object The object associated with property key. n ull means no such key-value pair.The transaction to do the Conglomerate work under. tc, String The "key" of the property that is being requested. key)Gets the de-serialized object associated with a property key. |
| pack-priv Serializable | |
| private boolean | iHoldTheUpdateLock(TransactionController tc)
Return true if the caller holds the exclusive update lock on the property conglomerate. |
| pack-priv void | |
| private DataValueDescriptor[] | makeNewTemplate(String key, Serializable value)
Create a new PropertyConglomerate row, with values in it. |
| private DataValueDescriptor[] | |
| private Serializable | map(String key, Serializable value, Dictionary<K, V> set)
Call the property set callbacks to map a proposed property value to a value to save. |
| private ScanController | Returns: an open ScanController on the PropertyConglomerate.The transaction to do the Conglomerate work under. tc, String The "key" of the property that is being requested. key, int Whether we are setting or getting the property. open_mode)Open a scan on the properties conglomerate looking for "key". |
| pack-priv boolean | |
| private Dictionary | |
| private Serializable | |
| pack-priv void | |
| pack-priv void | |
| pack-priv void | |
| private boolean | |
| pack-priv void | setProperty(TransactionController
The transaction to do the Conglomerate work under. tc, String The key used to lookup this property. key, Serializable The value to be associated with this key. If null,
delete the property from the properties list. value, boolean dbOnlyProperty)Sets the Serializable object associated with a property key. |
| pack-priv void | setPropertyDefault(TransactionController tc, String key, Serializable value)
Set the default for a property. |
| private void | validate(String key, Serializable value, Dictionary<K, V> set)
Call the property set callbacks to validate a property change against the property set provided. |
| private Serializable | validateApplyAndMap(TransactionController tc, String key, Serializable value, boolean dbOnlyProperty)
|
| cachedLock | back to summary |
|---|---|
| private CacheLock cachedLock | |
| cachedSet | back to summary |
|---|---|
| private Dictionary<String, Object> cachedSet | |
| lf | back to summary |
|---|---|
| private LockFactory lf | |
| pf | back to summary |
|---|---|
| private PropertyFactory pf | |
| propertiesConglomId | back to summary |
|---|---|
| protected long propertiesConglomId | |
| serviceProperties | back to summary |
|---|---|
| protected Properties serviceProperties | |
| PropertyConglomerate | back to summary |
|---|---|
| pack-priv PropertyConglomerate(TransactionController tc, boolean create, Properties serviceProperties, PropertyFactory pf) throws StandardException | |
| bootPasswordChange | back to summary |
|---|---|
| private boolean bootPasswordChange(TransactionController tc, String key, Serializable value) throws StandardException | |
| copyValues | back to summary |
|---|---|
| private <K, V> Dictionary | |
| findServiceModule | back to summary |
|---|---|
| private static Object findServiceModule(final Object serviceModule, final String factoryInterface) throws StandardException Must be private so that user code can't call this entry point. | |
| getCachedDbProperties | back to summary |
|---|---|
| private Dictionary | |
| getCachedProperty | back to summary |
|---|---|
| private Serializable getCachedProperty(TransactionController tc, String key) throws StandardException | |
| getCachedPropertyDefault | back to summary |
|---|---|
| private Serializable getCachedPropertyDefault(TransactionController tc, String key, Dictionary<K, V> dbProps) throws StandardException | |
| getProperties | back to summary |
|---|---|
| pack-priv Properties getProperties(TransactionController tc) throws StandardException Fetch the set of properties as a Properties object. This means that only keys that have String values will be included. | |
| getProperties | back to summary |
|---|---|
| public void getProperties(TransactionController tc, Dictionary<Object, Object> d, boolean stringsOnly, boolean defaultsOnly) throws StandardException | |
| getProperty | back to summary |
|---|---|
| pack-priv Serializable getProperty(TransactionController tc, String key) throws StandardException Gets the de-serialized object associated with a property key. The Store provides a transaction protected list of database properties. Higher levels of the system can store and retrieve these properties once Recovery has finished. Each property is a serializable object and is stored/retrieved using a String key. In this implementation a lookup is done on the PropertyConglomerate conglomerate, using a scan with "key" as the qualifier.
| |
| getPropertyDefault | back to summary |
|---|---|
| pack-priv Serializable getPropertyDefault(TransactionController tc, String key) throws StandardException Get the default for a property.
| |
| iHoldTheUpdateLock | back to summary |
|---|---|
| private boolean iHoldTheUpdateLock(TransactionController tc) throws StandardException Return true if the caller holds the exclusive update lock on the property conglomerate. | |
| lockProperties | back to summary |
|---|---|
| pack-priv void lockProperties(TransactionController tc) throws StandardException Lock the database properties for an update. | |
| makeNewTemplate | back to summary |
|---|---|
| private DataValueDescriptor[] makeNewTemplate(String key, Serializable value) Create a new PropertyConglomerate row, with values in it. | |
| makeNewTemplate | back to summary |
|---|---|
| private DataValueDescriptor[] makeNewTemplate() Create a new empty PropertyConglomerate row, to fetch values into. | |
| map | back to summary |
|---|---|
| private Serializable map(String key, Serializable value, Dictionary<K, V> set) throws StandardException Call the property set callbacks to map a proposed property value to a value to save. The caller must run this in a block synchronized on this to serialize validations with changes to the set of property callbacks | |
| openScan | back to summary |
|---|---|
| private ScanController openScan(TransactionController tc, String key, int open_mode) throws StandardException Open a scan on the properties conglomerate looking for "key". Open a scan on the properties conglomerate qualified to find the row with value key in column 0. Both column 0 and column 1 are included in the scan list.
| |
| propertyDefaultIsVisible | back to summary |
|---|---|
| pack-priv boolean propertyDefaultIsVisible(TransactionController tc, String key) throws StandardException | |
| readDbProperties | back to summary |
|---|---|
| private Dictionary Read the database properties and add in the service set. | |
| readProperty | back to summary |
|---|---|
| private Serializable readProperty(TransactionController tc, String key) throws StandardException | |
| resetCache | back to summary |
|---|---|
| pack-priv void resetCache() | |
| saveProperty | back to summary |
|---|---|
| pack-priv void saveProperty(TransactionController tc, String key, Serializable value) throws StandardException | |
| savePropertyDefault | back to summary |
|---|---|
| pack-priv void savePropertyDefault(TransactionController tc, String key, Serializable value) throws StandardException | |
| saveServiceProperty | back to summary |
|---|---|
| private boolean saveServiceProperty(String key, Serializable value) | |
| setProperty | back to summary |
|---|---|
| pack-priv void setProperty(TransactionController tc, String key, Serializable value, boolean dbOnlyProperty) throws StandardException Sets the Serializable object associated with a property key. This implementation turns the setProperty into an insert into the PropertyConglomerate conglomerate. See the discussion of getProperty(). The value stored may be a Formatable object or a Serializable object whose class name starts with java.*. This stops arbitary objects being stored in the database by class name, which will cause problems in obfuscated/non-obfuscated systems.
| |
| setPropertyDefault | back to summary |
|---|---|
| pack-priv void setPropertyDefault(TransactionController tc, String key, Serializable value) throws StandardException Set the default for a property.
| |
| validate | back to summary |
|---|---|
| private void validate(String key, Serializable value, Dictionary<K, V> set) throws StandardException Call the property set callbacks to validate a property change against the property set provided. The caller must run this in a block synchronized on this to serialize validations with changes to the set of property callbacks | |
| validateApplyAndMap | back to summary |
|---|---|
| private Serializable validateApplyAndMap(TransactionController tc, String key, Serializable value, boolean dbOnlyProperty) throws StandardException | |