You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tamaya.apache.org by "Tresch, Anatole " <an...@credit-suisse.com> on 2015/08/24 15:53:37 UTC

RE: tamaya .... I have done something similar and would love to help


From: Tresch, Anatole (KGVX 42)
Sent: Montag, 24. August 2015 15:53
To: 'MULCAHEY, DAVID F.'
Subject: RE: tamaya .... I have done something similar and would love to help

Hi David

thank very much for your mail. We will have a deeper look at it asap. Since you definitively bring in experience and enthusiasm for the topic it would great to have your support and views here also on in our project. You are welcome to discuss any ideas or improvements here on our developer list (cc'ed), add JIRA tickets and help us with the implementation. If all works out well, we would also be open on adding you as an committer/PPMC member...

Best,
Anatole

From: MULCAHEY, DAVID F. [mailto:DMULCAHEY@AMICA.com]
Sent: Montag, 24. August 2015 13:49
To: anatole@apache.org<ma...@apache.org>
Subject: tamaya .... I have done something similar and would love to help

I have been working on something eerily similar for a few years. I can't share details on version 1 as it was written for my company but the link below it to the 2nd version of what I have done. I had this set up as a private repo on github for quite a while but after stumbling across your efforts I figured I would make it public and share it. There is zero documentation written at this moment but I can answer any questions that you may have. Feel free to use whatever concepts you would like from what I have done. I am also interested in following your progress as I have a lot of interest in this area.

I generated this this morning just to put a page up.... I'll work on documenting everything soon.

http://dmulcahey.github.io/EnterpriseConfiguration/


the 60000 ft overview:

configuration info is loaded from the classpath.... You get to configure a loading order / override and merging strategy by defining a resolver chain.  An example of this:

https://github.com/dmulcahey/EnterpriseConfiguration/blob/master/enterprise-configuration/enterprise-configuration-configuration-component/src/main/java/com/bms/enterpriseconfiguration/configuration/component/ComponentConfigurationResolver.java

starting on line 79 you can see how a provider chain is assembled...

the module here: https://github.com/dmulcahey/EnterpriseConfiguration/tree/master/enterprise-configuration/enterprise-configuration-configuration-component
is a sample implementation of the underlying API

It works like so: there are several paths on the classpath that are considered relevant to configuration (convention over configuration)

SharedResources - useful for all applications all environments
EnvironmentResources - named sub folders representing the name of environments containing configuration only relevant to said environments
ComponentResources - config info relevant only to named components
EnvironmentOverrideResources - overrides to env resources
SecureResources - typically encrypted and the top of the override chain so they can't be messed with

Files with the same name in each area are loaded into a configuration object from CommonsConfiguration which provides the merging / override mechanisms as well as scripting support and many convenience methods for dealing with configuration info.

Typically 3 of those levels (shared, environment and secure) are provided as UNC paths on the JVM using the -cp argument or a JVM (-D) argument. This way they are abstracted from the application and provided to the applications as infrastructure. The other 2 directories are generally part of the application with the use of the overrides heavily discouraged :)

In house we also have a configuration service endpoint that serves up a lot of this information as a collection of rest endpoints.

I feel like I am rambling.... If any of this looks useful to you let me know and I will document as much of it as I can and I will contribute to your efforts  as much as my time allows!

Thanks for reading!!!

David F. Mulcahey | Application Configuration Management Section Manager

Amica Mutual Insurance Company | Corporate Information Systems
25 Amica Way | Lincoln, RI | 02865-1166
Voice: 800-652-6422 ext. 22754 | Fax: 401-334-1634
dmulcahey@amica.com<ma...@amica.com> | Amica.com<http://www.amica.com/>

________________________________
This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to which they are addressed. If you have received this email in error please notify postmaster@amica.com<ma...@amica.com> and the sender of the message. Confidential and personally identifiable information should not be transmitted to Amica via email or email attachment. Amica is not responsible for the loss, use or misuse of confidential or personally identifiable information which is sent to Amica via email or email attachment.

RE: tamaya .... I have done something similar and would love to help

Posted by "MULCAHEY, DAVID F." <DM...@AMICA.com>.
No problem at all… I am not married to any particular solution. It was a quick way to get some stuff done.

David F. Mulcahey | Application Configuration Management Section Manager

Amica Mutual Insurance Company | Corporate Information Systems
25 Amica Way | Lincoln, RI | 02865-1166
Voice: 800-652-6422 ext. 22754 | Fax: 401-334-1634
dmulcahey@amica.com<ma...@amica.com> | Amica.com<http://www.amica.com/>

From: Werner Keil [mailto:werner.keil@gmail.com]
Sent: Monday, August 24, 2015 10:02 AM
To: dev@tamaya.incubator.apache.org
Cc: MULCAHEY, DAVID F. <DM...@AMICA.com>
Subject: Re: tamaya .... I have done something similar and would love to help

David/all,

Thanks for your message and offer to get involved.
Only had very brief look, especially at the POM. Noticed, at least Project Lombok as a dependency.
I recall a committer to Apache DeviceMap where I am also involved asked about using Lombok there. We decided to skip it there at the time.
It may be OK from a license point of view, but every additional dependency has to be looked at carefully before using it.

Cheers,
Werner

On Mon, Aug 24, 2015 at 3:53 PM, Tresch, Anatole <an...@credit-suisse.com>> wrote:


From: Tresch, Anatole (KGVX 42)
Sent: Montag, 24. August 2015 15:53
To: 'MULCAHEY, DAVID F.'
Subject: RE: tamaya .... I have done something similar and would love to help

Hi David

thank very much for your mail. We will have a deeper look at it asap. Since you definitively bring in experience and enthusiasm for the topic it would great to have your support and views here also on in our project. You are welcome to discuss any ideas or improvements here on our developer list (cc'ed), add JIRA tickets and help us with the implementation. If all works out well, we would also be open on adding you as an committer/PPMC member...

Best,
Anatole

From: MULCAHEY, DAVID F. [mailto:DMULCAHEY@AMICA.com<ma...@AMICA.com>]
Sent: Montag, 24. August 2015 13:49
To: anatole@apache.org<ma...@apache.org>>
Subject: tamaya .... I have done something similar and would love to help

I have been working on something eerily similar for a few years. I can't share details on version 1 as it was written for my company but the link below it to the 2nd version of what I have done. I had this set up as a private repo on github for quite a while but after stumbling across your efforts I figured I would make it public and share it. There is zero documentation written at this moment but I can answer any questions that you may have. Feel free to use whatever concepts you would like from what I have done. I am also interested in following your progress as I have a lot of interest in this area.

I generated this this morning just to put a page up.... I'll work on documenting everything soon.

http://dmulcahey.github.io/EnterpriseConfiguration/[dmulcahey.github.io]<https://urldefense.proofpoint.com/v2/url?u=http-3A__dmulcahey.github.io_EnterpriseConfiguration_&d=BQMFaQ&c=Av3vauFMhFUPXS-3T7f9EA&r=MXOUrbmyvAH3KAs8wwCSgV0SKjygdFK8QdpbwORtPe4&m=MQ5IqrftHfUaRm_x66aDF-DrcJ3ATsOLaKAwekLElmk&s=Z3VnGzPbwj-pWvCF7oh-jlzuHpV1IsdpP5r24wo9CL4&e=>


the 60000 ft overview:

configuration info is loaded from the classpath.... You get to configure a loading order / override and merging strategy by defining a resolver chain.  An example of this:

https://github.com/dmulcahey/EnterpriseConfiguration/blob/master/enterprise-configuration/enterprise-configuration-configuration-component/src/main/java/com/bms/enterpriseconfiguration/configuration/component/ComponentConfigurationResolver.java[github.com]<https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_dmulcahey_EnterpriseConfiguration_blob_master_enterprise-2Dconfiguration_enterprise-2Dconfiguration-2Dconfiguration-2Dcomponent_src_main_java_com_bms_enterpriseconfiguration_configuration_component_ComponentConfigurationResolver.java&d=BQMFaQ&c=Av3vauFMhFUPXS-3T7f9EA&r=MXOUrbmyvAH3KAs8wwCSgV0SKjygdFK8QdpbwORtPe4&m=MQ5IqrftHfUaRm_x66aDF-DrcJ3ATsOLaKAwekLElmk&s=sdWfAoRZmq7uYaXM_tRtIstqpqlnfbWL6MdZdA_Eu1A&e=>

starting on line 79 you can see how a provider chain is assembled...

the module here: https://github.com/dmulcahey/EnterpriseConfiguration/tree/master/enterprise-configuration/enterprise-configuration-configuration-component[github.com]<https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_dmulcahey_EnterpriseConfiguration_tree_master_enterprise-2Dconfiguration_enterprise-2Dconfiguration-2Dconfiguration-2Dcomponent&d=BQMFaQ&c=Av3vauFMhFUPXS-3T7f9EA&r=MXOUrbmyvAH3KAs8wwCSgV0SKjygdFK8QdpbwORtPe4&m=MQ5IqrftHfUaRm_x66aDF-DrcJ3ATsOLaKAwekLElmk&s=FK0GueL-8x3qyO7R10AWUqw4cc8bNh9Rtjov5Fo1sUc&e=>
is a sample implementation of the underlying API

It works like so: there are several paths on the classpath that are considered relevant to configuration (convention over configuration)

SharedResources - useful for all applications all environments
EnvironmentResources - named sub folders representing the name of environments containing configuration only relevant to said environments
ComponentResources - config info relevant only to named components
EnvironmentOverrideResources - overrides to env resources
SecureResources - typically encrypted and the top of the override chain so they can't be messed with

Files with the same name in each area are loaded into a configuration object from CommonsConfiguration which provides the merging / override mechanisms as well as scripting support and many convenience methods for dealing with configuration info.

Typically 3 of those levels (shared, environment and secure) are provided as UNC paths on the JVM using the -cp argument or a JVM (-D) argument. This way they are abstracted from the application and provided to the applications as infrastructure. The other 2 directories are generally part of the application with the use of the overrides heavily discouraged :)

In house we also have a configuration service endpoint that serves up a lot of this information as a collection of rest endpoints.

I feel like I am rambling.... If any of this looks useful to you let me know and I will document as much of it as I can and I will contribute to your efforts  as much as my time allows!

Thanks for reading!!!

David F. Mulcahey | Application Configuration Management Section Manager

Amica Mutual Insurance Company | Corporate Information Systems
25 Amica Way | Lincoln, RI | 02865-1166<tel:02865-1166>
Voice: 800-652-6422 ext. 22754 | Fax: 401-334-1634
dmulcahey@amica.com<ma...@amica.com>> | Amica.com<http://www.amica.com/>

________________________________
This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to which they are addressed. If you have received this email in error please notify postmaster@amica.com<ma...@amica.com>> and the sender of the message. Confidential and personally identifiable information should not be transmitted to Amica via email or email attachment. Amica is not responsible for the loss, use or misuse of confidential or personally identifiable information which is sent to Amica via email or email attachment.


Re: tamaya .... I have done something similar and would love to help

Posted by Werner Keil <we...@gmail.com>.
David/all,

Thanks for your message and offer to get involved.
Only had very brief look, especially at the POM. Noticed, at least Project
Lombok as a dependency.
I recall a committer to Apache DeviceMap where I am also involved asked
about using Lombok there. We decided to skip it there at the time.
It may be OK from a license point of view, but every additional dependency
has to be looked at carefully before using it.

Cheers,
Werner

On Mon, Aug 24, 2015 at 3:53 PM, Tresch, Anatole <
anatole.tresch@credit-suisse.com> wrote:

>
>
> From: Tresch, Anatole (KGVX 42)
> Sent: Montag, 24. August 2015 15:53
> To: 'MULCAHEY, DAVID F.'
> Subject: RE: tamaya .... I have done something similar and would love to
> help
>
> Hi David
>
> thank very much for your mail. We will have a deeper look at it asap.
> Since you definitively bring in experience and enthusiasm for the topic it
> would great to have your support and views here also on in our project. You
> are welcome to discuss any ideas or improvements here on our developer list
> (cc'ed), add JIRA tickets and help us with the implementation. If all works
> out well, we would also be open on adding you as an committer/PPMC member...
>
> Best,
> Anatole
>
> From: MULCAHEY, DAVID F. [mailto:DMULCAHEY@AMICA.com]
> Sent: Montag, 24. August 2015 13:49
> To: anatole@apache.org<ma...@apache.org>
> Subject: tamaya .... I have done something similar and would love to help
>
> I have been working on something eerily similar for a few years. I can't
> share details on version 1 as it was written for my company but the link
> below it to the 2nd version of what I have done. I had this set up as a
> private repo on github for quite a while but after stumbling across your
> efforts I figured I would make it public and share it. There is zero
> documentation written at this moment but I can answer any questions that
> you may have. Feel free to use whatever concepts you would like from what I
> have done. I am also interested in following your progress as I have a lot
> of interest in this area.
>
> I generated this this morning just to put a page up.... I'll work on
> documenting everything soon.
>
> http://dmulcahey.github.io/EnterpriseConfiguration/
>
>
> the 60000 ft overview:
>
> configuration info is loaded from the classpath.... You get to configure a
> loading order / override and merging strategy by defining a resolver
> chain.  An example of this:
>
>
> https://github.com/dmulcahey/EnterpriseConfiguration/blob/master/enterprise-configuration/enterprise-configuration-configuration-component/src/main/java/com/bms/enterpriseconfiguration/configuration/component/ComponentConfigurationResolver.java
>
> starting on line 79 you can see how a provider chain is assembled...
>
> the module here:
> https://github.com/dmulcahey/EnterpriseConfiguration/tree/master/enterprise-configuration/enterprise-configuration-configuration-component
> is a sample implementation of the underlying API
>
> It works like so: there are several paths on the classpath that are
> considered relevant to configuration (convention over configuration)
>
> SharedResources - useful for all applications all environments
> EnvironmentResources - named sub folders representing the name of
> environments containing configuration only relevant to said environments
> ComponentResources - config info relevant only to named components
> EnvironmentOverrideResources - overrides to env resources
> SecureResources - typically encrypted and the top of the override chain so
> they can't be messed with
>
> Files with the same name in each area are loaded into a configuration
> object from CommonsConfiguration which provides the merging / override
> mechanisms as well as scripting support and many convenience methods for
> dealing with configuration info.
>
> Typically 3 of those levels (shared, environment and secure) are provided
> as UNC paths on the JVM using the -cp argument or a JVM (-D) argument. This
> way they are abstracted from the application and provided to the
> applications as infrastructure. The other 2 directories are generally part
> of the application with the use of the overrides heavily discouraged :)
>
> In house we also have a configuration service endpoint that serves up a
> lot of this information as a collection of rest endpoints.
>
> I feel like I am rambling.... If any of this looks useful to you let me
> know and I will document as much of it as I can and I will contribute to
> your efforts  as much as my time allows!
>
> Thanks for reading!!!
>
> David F. Mulcahey | Application Configuration Management Section Manager
>
> Amica Mutual Insurance Company | Corporate Information Systems
> 25 Amica Way | Lincoln, RI | 02865-1166
> Voice: 800-652-6422 ext. 22754 | Fax: 401-334-1634
> dmulcahey@amica.com<ma...@amica.com> | Amica.com<
> http://www.amica.com/>
>
> ________________________________
> This email and any files transmitted with it are confidential and intended
> solely for the use of the individual or entity to which they are addressed.
> If you have received this email in error please notify
> postmaster@amica.com<ma...@amica.com> and the sender of the
> message. Confidential and personally identifiable information should not be
> transmitted to Amica via email or email attachment. Amica is not
> responsible for the loss, use or misuse of confidential or personally
> identifiable information which is sent to Amica via email or email
> attachment.
>