Hi, Anatole--

It's great to see all this work going in! Will you be able to cut a set of 
SNAPSHOT builds to make it available for more widespread testing?


ajs6f

> On Nov 19, 2018, at 5:46 AM, Werner Keil <werner.k...@gmail.com> wrote:
> 
> Hi,
> 
> Was this why most builds broke for a while?
> 
> Thanks and Regards,
> 
> Werner
> 
> 
> 
> On Sun, Nov 18, 2018 at 10:51 PM Anatole Tresch <atsti...@gmail.com> wrote:
> 
>> Hi Guys
>> 
>> I pushed everything now from my machine. All builds worked fine, keeping
>> fingers crossed they will do also on the build servers. From a functional
>> perspective I think this is basically the things that should be ready for
>> the next release. Before I would be incredibly thankful for everybody
>> hacing a look and probably give feedback. I try to summarize the most
>> important points:
>> 
>> 
>>   - Using Java 8 features on the API the current *ConfigurationProvider *can
>>   be deprecated in favour of static methods on the *Configuration *interface.
>>   This reduces the API size overall.
>>   - For having control about backward compatibility I added revapi
>>   reports to all core and extension modules, they will be generated under
>>   target/site during the normal build and can be opened using a browser.
>>   There you can easily see that especially in the SPI area some changes are
>>   definitively breaking changes, whereas the API is still basically stable,
>>   with some deprecations...
>>   - *ConfigQuery *and *ConfigOperator *were deprecated in favour of
>>   *UnaryOperator<Configuration>* and *Function<Configuration,T>.* The
>>   old artifacts are still in place for backward compatibility.
>>   - Configuration and also all other parts/modules can now be accessed
>>   passing a specific target classloader. This change actually makes really
>>   sense, but required a few incompatible changes, especially in the
>>   extensions part. The core API has been extended only. At it's core the
>>   *ServiceContext*, which actually manages all components loaded in a
>>   runtime context is now *Classloader *aware. Each configuration
>>   instance has a reference to it's own *ServiceContext*. Components that
>>   require access to the current *ClassLoader *can simply implement the 
>> *ClassloaderAware
>>   *interface (added to the core SPI). When loaded by the *ServiceContext
>>   *the current target classloader gets passed.
>>   - For consistent configuration access a similar enum like the config
>>   JSR has been added, where a *PropertySource *can declare if it
>>   supports consistent access, os is even immutable. Similaly a String 
>> *getVersion()
>>   *method has been added, where a property source can return it's
>>   version identifiers. This allows a configuration to ensure, when consistent
>>   access is supported, that the values accessed are consistent, when the
>>   versions before and after reading the values are the same.
>>   - The JSR provides a snapshot feature, which in combination with the
>>   atomic access makes sense as well. In Tamaya in the event module a similar
>>   feature already was implemented. I moved this feature into the core API and
>>   the implementation moved into the support module. The existing "
>>   *FrozenConfiguration/FrozenPropertySource*" classes have been
>>   deprecated and all accessing code has been adapted.
>>   - As already mentioned the internal representation structures (
>>   *PropertyValue*) were extended by Map-liked data (*ObjectValue*) and
>>   array like data (*ListValue*). This enables also more complex mappings
>>   and type conversions from typical file formats to be quite easily
>>   realizable.
>>   - The homepage was extended by a simple logo, which models the "in the
>>   middle" meaning of the indian name Tamaya. I think it's nice and simple, so
>>   my proposal is to go with it for now (see also below).
>>   - Beside the logo I also added a complete new entry page with some
>>   nice (I think) advertising intros of Tamaya. To give feedback, best would
>>   be to check the site master repo out and build the site with jbake and view
>>   it on your local browser. This site also includes the overall
>>   documentation, which also has been adapted to the changes done. So it would
>>   make sense to publish the new site along the new version, once it's ready.
>>   - The JSR module implements the latest state of the JSR (one week old).
>>   - I did not update the Microprofile implementation (AFAIK it still
>>   implements MP 1.1 Config API).
>>   - Beside the collections module I also simplified the modules for
>>   consul, Hazelcast and etd support. So I think we can release them as
>>   extensions as well (they are ultra small).
>> 
>> There will be some places (snapshots, ObjectValue, ListValue for example),
>> where additional test code would be required, but overall things should be
>> working quite fine and if you agree, we should be basically ready to
>> release now. Of course, feedback or improvements are very welcome!
>> 
>> Have a nice time. I hope you enjoy the new stuff ;-)
>> Anatole
>> 
>> PS: As mentioned, here the logo proposal:
>> 
>> [image: tamaya.png]
>> 
>> 
>> --
>> *Anatole Tresch*
>> PPMC Member Apache Tamaya
>> JCP Star Spec Lead
>> *Switzerland, Europe Zurich, GMT+1*
>> *maketechsimple.wordpress.com <http://maketechsimple.wordpress.com/> *
>> *Twitter:  @atsticks, @tamayaconf*
>> 
>> 
>> 

Reply via email to