2017-09-12

Tamaya SPI Support (Extension Module)

Tamaya SPI Support is an extension module. Refer to the extensions documentation for further details.

What functionality this module provides ?

Tamaya SPI Support provides a few helpful base classes that can be used to implement some of the often used SPI parts in Tamaya:

  • BasePropertySource provides an abstract base class for implementation of your own PropertySources.

  • DefaultConfiguration provides you with a simple implementation of the Configuration interface based on a ConfigurationContext provided. This is also very useful for mocking configuration during test execution, but not only constraint to that use case.

  • DefaultConfigurationContext provides you with a working implementation of the ConfigurationContext.

  • EnumConverter is a converter implementation that can automatically select the currect enumeration values based on a configured entry.

  • MapPropertySource implements a static property source based on java.util.Map.

  • PriorityServiceComparator compares arbitrary services based on their @Priority annotations (also handling the case, where no such annotation is present).

  • PropertiesResourcePropertySource is an implementation of a PropertySource based on a Properties instance, lodable from any URL. + PropertyConverterManager is a service class very useful, when implementing instances of ConfigurationContext. It manages registered instances of PropertyConverter and provides easy to use type conversion logic. + PropertyFiltering provides another helpful class that manages PropertyFilter instances and provides an easy to use high level API. + PropertySourceComparator provides an implementation that compares PropertySources based on their getOrdinal() values and their class names. + The default configuration implementation also allows to replace the raw value evaluation logic using a ConfigValueEvaluator, similar to Tamaya’s core implementation.

Note
It is highly recommended that you read also the documentation of Tamaya’s implementation core, since this describes the abstrations in use in more detail. This module allows to reuse Tamaya’s implementation artifacts but still allow alternate implementations of the core API to be used.

Compatibility

The module is based on Java 7, so it will run on Java 7 and beyond.

Installation

To use Tamaya’s spisupport you only must add the corresponding dependency to your module:

<dependency>
  <groupId>org.apache.tamaya.ext</groupId>
  <artifactId>tamaya-spisupport</artifactId>
  <version>{tamaya_version}</version>
</dependency>

The component will not register any components but only providing portable base classes for some common SPI implementation tasks. It only depends on the API, so it should be safely reusable also with other implementations of the Tamaya API similarly.