Class AdvertisementCatalog

java.lang.Object
org.sblim.cimclient.discovery.AdvertisementCatalog

public class AdvertisementCatalog extends Object
Class AdvertisementCatalog implements a catalog for WBEM service advertisements. In practice we usually have multiple advertisements for a single service, because the DMTF mandates an advertisement per remote service access point (e.g. http, https, rmi). This class tries to ease the management of this by indexing services by the unique service id and therefore surfacing which advertisements belong to the same service. The application might then choose it's preferred communication mechanism.
Since:
2.0.2
Threading considerations:
No thread synchronization provided, this is the responsibility of the caller.
  • Field Details

    • EVENT_ADD

      public static int EVENT_ADD
      Event code when advertisement is added
    • EVENT_REMOVE

      public static int EVENT_REMOVE
      Event code when advertisement is removed
    • EVENT_EXPIRE

      public static int EVENT_EXPIRE
      Event code when advertisement expires
    • EVENT_RENEW

      public static int EVENT_RENEW
      Event code when advertisement is renewed
  • Constructor Details

    • AdvertisementCatalog

      public AdvertisementCatalog()
      Ctor.
  • Method Details

    • addEventListener

      public void addEventListener(AdvertisementCatalog.EventListener pListener)
      Adds a listener for "add" events. The listener will be called whenever a advertisement is added to the catalog.
      Parameters:
      pListener - The listener
    • addAdvertisements

      public void addAdvertisements(WBEMServiceAdvertisement[] pAdvertisements)
      Adds new advertisements to the catalog. Existing advertisements sharing concrete type, url and directory are replaced.
      Parameters:
      pAdvertisements - The new advertisements
    • getAdvertisement

      public WBEMServiceAdvertisement getAdvertisement(String pId, WBEMProtocol[] pProtocols)
      Returns the advertisement from the catalog corresponding to a given id and with the protocol preferred most.
      Parameters:
      pId - The service id
      pProtocols - An array containing the desired protocols in order of preference. If a service doesn't advertise any of the given protocols this service returns null.
      Returns:
      The corresponding advertisement
    • getAdvertisementsByDirectory

      public WBEMServiceAdvertisement[] getAdvertisementsByDirectory(String pDirectory)
      Returns the advertisements from the catalog corresponding to a given directory
      Parameters:
      pDirectory - The directory service
      Returns:
      The corresponding advertisements
    • getAdvertisementsById

      public WBEMServiceAdvertisement[] getAdvertisementsById(String pId)
      Returns the advertisements from the catalog corresponding to a given id
      Parameters:
      pId - The service id
      Returns:
      The corresponding advertisements
    • getKnownIds

      public String[] getKnownIds()
      Returns an array of service ids known by this catalog
      Returns:
      The service ids
    • refreshAdvertisements

      public void refreshAdvertisements(String[] pDirectory, WBEMServiceAdvertisement[] pAdvertisements)
      Refreshes the advertisements from a given directory. All existing advertisements from this directory are deleted first before the new ones are added.
      Parameters:
      pDirectory - The directory services we got the advertisements from
      pAdvertisements - The advertisements
    • removeEventListener

      public void removeEventListener(AdvertisementCatalog.EventListener pListener)
      Removes a listener
      Parameters:
      pListener - The listener to remove
    • removeExpired

      public void removeExpired(String pDirectory)
      Removes the expired advertisements from the catalog.
      Parameters:
      pDirectory - When not null only the expired advertisements of the given directory are removed. Otherwise all expired advertisements are removed.
    • toString

      public String toString()
      Overrides:
      toString in class Object