tigase.cluster.repo

## Class ClConConfigRepository

- java.lang.Object
- - tigase.db.comp.ConfigRepository<ClusterRepoItem>
  - - tigase.cluster.repo.ClConConfigRepository

- All Implemented Interfaces:
    Iterable<ClusterRepoItem>, ComponentRepository<ClusterRepoItem>, Repository, ShutdownHook
  Direct Known Subclasses:
    ClConDirRepository, ClConSQLRepository

      public class ClConConfigRepository
      extends ConfigRepository<ClusterRepoItem>
      implements ShutdownHook

  Class description
  Version:
    5.2.0, 13/03/09
  Author:
    Artur Hefczyc

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface tigase.db.Repository

      `Repository.Meta`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected boolean` | `auto_remove_obsolete_items`
    `static String` | `AUTO_REMOVE_OBSOLETE_ITEMS_PROP_KEY`
    `protected long` | `autoreload_interval`
    `static String` | `AUTORELOAD_INTERVAL_PROP_KEY`
    `static long` | `AUTORELOAD_INTERVAL_PROP_VAL`
    `protected boolean` | `firstLoadDone`
    `protected long` | `lastReloadTime`
    `protected long` | `lastReloadTimeFactor`

    - ### Fields inherited from class tigase.db.comp.ConfigRepository

      `items, itemsHash`

    - ### Fields inherited from interface tigase.db.comp.ComponentRepository

      `COMP_REPO_BIND`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ClConConfigRepository()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `destroy()` Method destroys this instance of ComponentRepository releasing resources allocated for this instance of ComponentRepository if possible
    `String` | `getConfigKey()` Method description
    `String[]` | `getDefaultPropetyItems()` Method description
    `void` | `getDefaults(Map<String,Object> defs, Map<String,Object> params)` The method is called to obtain default configuration settings if there are any for this repository implementation The configuration settings are implementation dependent and there are no defaults set by the server.
    `ClusterRepoItem` | `getItemInstance()` Creates a new, uninitialized instance of the repository Item.
    `String` | `getName()`
    `String` | `getPropertyKey()` Method description
    `void` | `initRepository(String resource_uri, Map<String,String> params)` The method is called to initialize the data repository.
    `boolean` | `itemChanged(ClusterRepoItem oldItem, ClusterRepoItem newItem)` Method description
    `void` | `itemLoaded(ClusterRepoItem item)`
    `void` | `reload()` This method is called to reload items from the database or other permanent storage.
    `void` | `setProperties(Map<String,Object> props)` The method is called to set configuration for this repository implementation.
    `String` | `shutdown()`
    `void` | `storeItem(ClusterRepoItem item)`

    - ### Methods inherited from class tigase.db.comp.ConfigRepository

      `addItem, addItemNoStore, addRepoChangeListener, allItems, contains, getItem, initItemsMap, iterator, removeItem, removeRepoChangeListener, setAutoloadTimer, size, store, toString, validateItem`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface java.lang.Iterable

      `forEach, spliterator`

- - ### Field Detail

    - #### AUTORELOAD_INTERVAL_PROP_KEY

          public static final String AUTORELOAD_INTERVAL_PROP_KEY

      See Also:
        Constant Field Values

    - #### AUTO_REMOVE_OBSOLETE_ITEMS_PROP_KEY

          public static final String AUTO_REMOVE_OBSOLETE_ITEMS_PROP_KEY

      See Also:
        Constant Field Values

    - #### AUTORELOAD_INTERVAL_PROP_VAL

          public static final long AUTORELOAD_INTERVAL_PROP_VAL

      See Also:
        Constant Field Values

    - #### autoreload_interval

          protected long autoreload_interval

    - #### auto_remove_obsolete_items

          protected boolean auto_remove_obsolete_items

    - #### lastReloadTime

          protected long lastReloadTime

    - #### lastReloadTimeFactor

          protected long lastReloadTimeFactor

    - #### firstLoadDone

          protected boolean firstLoadDone

  - ### Constructor Detail

    - #### ClConConfigRepository

          public ClConConfigRepository()

  - ### Method Detail

    - #### destroy

          public void destroy()

      Description copied from interface: `ComponentRepository`
      Method destroys this instance of ComponentRepository releasing resources allocated for this instance of ComponentRepository if possible
      Specified by:
        `destroy` in interface `ComponentRepository<ClusterRepoItem>`

    - #### getDefaultPropetyItems

          public String[] getDefaultPropetyItems()

      Description copied from class: `ConfigRepository`
      Method description
      Specified by:
        `getDefaultPropetyItems` in class `ConfigRepository<ClusterRepoItem>`

    - #### getName

          public String getName()

      Specified by:
        `getName` in interface `ShutdownHook`

    - #### getPropertyKey

          public String getPropertyKey()

      Description copied from class: `ConfigRepository`
      Method description
      Specified by:
        `getPropertyKey` in class `ConfigRepository<ClusterRepoItem>`

    - #### getConfigKey

          public String getConfigKey()

      Description copied from class: `ConfigRepository`
      Method description
      Specified by:
        `getConfigKey` in class `ConfigRepository<ClusterRepoItem>`

    - #### getItemInstance

          public ClusterRepoItem getItemInstance()

      Description copied from interface: `ComponentRepository`
      Creates a new, uninitialized instance of the repository Item.
      Specified by:
        `getItemInstance` in interface `ComponentRepository<ClusterRepoItem>`
      Returns:
        a new, uninitialized instance of the repository Item.

    - #### initRepository

          public void initRepository(String resource_uri,
                                     Map<String,String> params)
                              throws DBInitException

      Description copied from interface: `Repository`
      The method is called to initialize the data repository. Depending on the implementation all the initialization parameters can be passed either via `resource_uri` parameter as the database connection string or via `params` map if the required repository parameters are more complex or both.
      Specified by:
        `initRepository` in interface `Repository`
      Parameters:
        `resource_uri` - value in most cases representing the database connection string.
        `params` - is a `Map` with repository properties necessary to initialize and perform all the functions. The initialization parameters are implementation dependent.
      Throws:
        `DBInitException` - if there was an error during repository initialization. Some implementations, though, perform so called lazy initialization so even though there is a problem with the underlying repository it may not be signaled through this method call.

    - #### reload

          public void reload()

      Description copied from interface: `ComponentRepository`
      This method is called to reload items from the database or other permanent storage. It is possible that items list is modified externally by third-party system. When all modifications are done this method is called to refresh the class cache. Whether the implementation load whole list or just last modifications is implementation dependent.
      Specified by:
        `reload` in interface `ComponentRepository<ClusterRepoItem>`
      Overrides:
        `reload` in class `ConfigRepository<ClusterRepoItem>`

    - #### itemLoaded

          public void itemLoaded(ClusterRepoItem item)

    - #### itemChanged

          public boolean itemChanged(ClusterRepoItem oldItem,
                                     ClusterRepoItem newItem)

      Description copied from class: `ConfigRepository`
      Method description
      Overrides:
        `itemChanged` in class `ConfigRepository<ClusterRepoItem>`

    - #### getDefaults

          public void getDefaults(Map<String,Object> defs,
                                  Map<String,Object> params)

      Description copied from interface: `ComponentRepository`
      The method is called to obtain default configuration settings if there are any for this repository implementation The configuration settings are implementation dependent and there are no defaults set by the server. Default settings returned by this method are then saved in the configuration file and presented to the admin for further adjustments.
      Specified by:
        `getDefaults` in interface `ComponentRepository<ClusterRepoItem>`
      Overrides:
        `getDefaults` in class `ConfigRepository<ClusterRepoItem>`
      Parameters:
        `defs` - is a `Map` collection where all repository configuration defaults must be put.
        `params` - is a `Map` collection with some preset properties for the server. These settings can be used to adjust repository defaults, for example they can contain database connection URL or initial list of virtual domains.

    - #### setProperties

          public void setProperties(Map<String,Object> props)

      Description copied from interface: `ComponentRepository`
      The method is called to set configuration for this repository implementation. The configuration is repository implementation dependent. There are no default settings for the repository.
      Specified by:
        `setProperties` in interface `ComponentRepository<ClusterRepoItem>`
      Overrides:
        `setProperties` in class `ConfigRepository<ClusterRepoItem>`
      Parameters:
        `props` - a `Map` with configuration settings. Content of this `Map` must not be modified. This read-only collection.

    - #### shutdown

          public String shutdown()

      Specified by:
        `shutdown` in interface `ShutdownHook`

    - #### storeItem

          public void storeItem(ClusterRepoItem item)

Copyright © 2022 "Tigase, Inc.". All rights reserved.