Class Configuration

java.lang.Object
com.tibco.ep.testing.framework.Configuration

public final class Configuration extends Object

HOCON Configuration tools to support unit testing

HOCON configurations can be loaded and activated at any time :

      Map<String, String> substitutions = new HashMap<>();
      
      // example load / activate on this node
      //
      config = new Configuration("test1.conf").load().activate();
 

and subsequently deactivated and removed :

      // example deactive / remove on this node
      //
      config.deactivate().remove();
 

Substitution parameters can be specified :

      // example load / activate on this node
      //
      substitutions.put("param", "value");
      config = new Configuration("test1.conf", substitutions).load().activate();
 

By default, the configuration is loaded on the local node only - to load on a different node or on the cluster, the serviceName can be specified :

      // example load / activate on a specific node or cluster
      //
      config = new Configuration("A.test-framework", "test2.conf", substitutions).load().activate();
      config.deactivate().remove();
      config = new Configuration("test-framework", "test3.conf", substitutions).load().activate();
      config.deactivate().remove();
 

Test can call the deactiveRemoveAll function to automatically deactivate and remove configurations that are still loaded.

      // Deactivate configurations previous loaded
      //
      Configuration.deactiveAndRemoveAll();
 

Note that there is no support for auto loading configurations - any configuration that is required for a test case must load and activate it using this API. This includes configurations used be any dependent components.

  • Field Details

  • Constructor Details

    • Configuration

      public Configuration(String serviceName, String resource, Map<String,String> substitutions)

      Create a configuration instance

      Parameters:
      serviceName - service name, can not be null
      resource - HOCON configuration resource / absolute file path to load, can not be null
      substitutions - Substitution variables, can not be null
    • Configuration

      public Configuration(String serviceName, String resource, Map<String,String> substitutions, String substitutionResource)

      Create a configuration instance

      Parameters:
      serviceName - service name, can not be null
      resource - HOCON configuration resource / absolute file path to load, can not be null
      substitutions - Substitution variables, can not be null
      substitutionResource - Substitutions resource file, can not be null
    • Configuration

      public Configuration(String resource, Map<String,String> substitutions)

      Create a configuration instance

      Parameters:
      resource - HOCON configuration resource / absolute file path to load, can not be null
      substitutions - Substitution variables, can not be null
    • Configuration

      public Configuration(String resource)

      Create a configuration instance

      Parameters:
      resource - HOCON configuration resource / absolute file path to load, can not be null
  • Method Details

    • forFile

      public static Configuration forFile(String serviceName, String resource, Map<String,String> substitutions)

      Create a configuration instance

      Parameters:
      serviceName - service name, can not be null
      resource - HOCON configuration resource / absolute file path to load, can not be null
      substitutions - Substitution variables, can not be null
      Returns:
      instance of Configuration
    • forFile

      public static Configuration forFile(String serviceName, String resource, Map<String,String> substitutions, String substitutionResource)

      Create a configuration instance

      Parameters:
      serviceName - service name, can not be null
      resource - HOCON configuration resource / absolute file path to load, can not be null
      substitutions - Substitution variables, can not be null
      substitutionResource - Substitutions resource file, can not be null
      Returns:
      instance of Configuration
    • forFile

      public static Configuration forFile(String resource, Map<String,String> substitutions)

      Create a configuration instance

      Parameters:
      resource - HOCON configuration resource / absolute file path to load, can not be null
      substitutions - Substitution variables, can not be null
      Returns:
      instance of Configuration
    • forFile

      public static Configuration forFile(String resource)

      Create a configuration instance

      Parameters:
      resource - HOCON configuration resource/absolute file path to load, can not be null
      Returns:
      instance of Configuration
    • load

      public Configuration load() throws ConfigurationException

      Load this configuration

      This method can be run within or outside a transaction

      Returns:
      Config instance
      Throws:
      ConfigurationException - on configuration failure or already loaded
    • activate

      public Configuration activate() throws ConfigurationException

      Activate this configuration

      Fails if configuration is not loaded

      This method can be run within or outside a transaction

      Returns:
      Config instance
      Throws:
      ConfigurationException - on configuration failure or already active
    • deactivate

      public Configuration deactivate() throws ConfigurationException

      Deactivate this configuration

      Fails if configuration is not active

      This method can be run within or outside a transaction

      Returns:
      Config instance
      Throws:
      ConfigurationException - on configuration failure or not active
    • remove

      public void remove() throws ConfigurationException

      Remove this configuration

      Fails if configuration is still active

      This method can be run within or outside a transaction

      Throws:
      ConfigurationException - on configuration failure or still active
    • getLoadedConfigurations

      public static List<Configuration> getLoadedConfigurations()
      Get all loaded configurations
      Returns:
      list of loaded configurations
    • isActive

      public boolean isActive()

      Check if this configuration is activated

      This method can be run within or outside a transaction

      Returns:
      Return true if configuration is activated, false otherwise
    • isLoaded

      public boolean isLoaded()

      Check if this configuration is loaded

      This method can be run within or outside a transaction

      Returns:
      Return true if configuration is loaded, false otherwise
    • getName

      public Optional<String> getName()
      Get the currently loaded configuration name
      Returns:
      name
    • getVersion

      public Optional<String> getVersion()
      Get the currently loaded configuration version
      Returns:
      version
    • getType

      public Optional<String> getType()
      Get the currently loaded configuration type
      Returns:
      type
    • deactiveAndRemoveAll

      public static void deactiveAndRemoveAll()

      Deactivate and remove configurations in reverse order

      This method can be run within or outside a transaction

      Errors are ignored

    • toString

      public String toString()
      Overrides:
      toString in class Object