All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.deephacks.tools4j.config.spi.package-info Maven / Gradle / Ivy

There is a newer version: 0.15.0
Show newest version
/**
* This package contains service provider interfaces (SPI) that enable applications to 
* replace, extend and customize different configuration aspects such as storage, caching behaviour, 
* runtime environment and so forth. 
* 

* Each SPI deals with a very specific concern within the architecture and service providers are * free to implement any of them. A key design goal for each SPI is to be decoupled from other SPI to * enable providers to create modular implementations that are orthogonal and cohesive with * respect to other SPI. This enables interaction between unforseen combinations of service providers. *

* Provider services are registered and automatically bound to core functionality when * the application is started/loaded. It is the responsibility of the core to glue/mediate communication * between different providers. The mechanism used is the standard {@link java.util.ServiceLoader} * at the moment, but other lookup/registrations (OSGi, CDI SPI extensions, JNDI etc) are envisioned. *

* A Test Compability Kit (TCK) is available for providers to verify that their * implementation behaves correctly. *

*

* Each SPI have a default implementation that will be used if no other is provided. *

* *

* The following SPIs are available at the moment: *

    *
  • {@link org.deephacks.tools4j.config.spi.BeanManager}
  • *
  • {@link org.deephacks.tools4j.config.spi.SchemaManager}
  • *
  • {@link org.deephacks.tools4j.config.spi.ValidationManager}
  • *
  • {@link org.deephacks.tools4j.support.conversion.Converter}
  • * This interface takes care of converting configuration property types to-and-from String * (which is the format for storing property values). *
*

* *

* The following SPIs are envisioned in the future: *

    *
  • SessionManager
  • * Doing configuration changes in the context of a session that can commit and validate (or rollback) atomically. *
  • CachingManager
  • * Implements a cache policy of runtime instances, such as eviction, memory size, storage, passivation etc. *
  • NotificationManager
  • * Provide applications with notification guarantees, making them aware of changes made to their configuration * in case an adjusting actions needs to be taken within their runtime environment. *
*

*

Usage

* * TODO: */ package org.deephacks.tools4j.config.spi; ;




© 2015 - 2024 Weber Informatics LLC | Privacy Policy