Java Configuration Project
Welcome to the Java Configuration project. This project is aimed to continue the work started by Michael Keith on a configuration JSR. Everybody interested may join this project or the corresponding mailing list.
- A small, elegant, simple and extensible Java API supporting injection, but also a service like access (required for all aspects, where CDI is not available).
- Just define the mechanisms to be provided on the API/SPI side, do not define what other JSRs should to have include (let the EE expert group discuss that).
- as a starting point a JSR should target SE with EE in mind
- be careful not to constraint vendors.
- also this JSR will not introduce Cloud features, but should help/support implementing such.
It should be possible to configure
- code configuration
- deployment configuration
Draft Outline of Functionalities
- SPI for arbitrary configuration sources, by default XML files, system and environment properties.
- Definition of configuration in a hierarchy of config units
- Support for configuration filtering, overriding and stage or environment specific configuration
- Injection of any types using CDI, including a simple TypeConverter SPI (low level configuration is always modeled as String).
- The JSR itself should not directly depend on CDI (it should also be usable independent of CDI)
- Different locations of configuration files (system classpath, ear classpath, app classpath, different file directories, …), including classloader isolation etc., implicit hierarchy/priority of configuration along the classloader hierarchies should be supported
- Default aggregates for global Configuration, ear leveled configuration and web application configuration etc.
- Static and dynamic configuration
- Optionally also Configuration resolution (“dynamic configuration”) and includes.
More to follow. This is just an initial write down (I would even not call it a early draft). Currently there is even not yet a group setup...