ConfigureMe innovations


Ivan Batura - October 7, 2012 - 0 comments

New version 1.1.3 of the ConfigureMe has been released with some “Yammy” features.

However firstly I want to start with feature, that was appeared some time before, but was not highlighted. Thus we will start from variables

Variables

You can use environment variables to set attributes in configuration.

Syntactics: variable:”${testVariable}”. Click for full example.

Now we will proceed with current release features. Please welcome: includes, links and the new annotation @ConfigureAlso.

Includes

If you have in your configuration files some general part. You can point out this part to the one configuration files and just include to the others.

Using this feature you can have any nesting as you want. But be ware of loops, if loop is indicated you will have an exception.

  Links

Sometimes you have some general attributes, that are used in the many configuration files. And in order to change them it is needed to search for all entries. In order to simplify this procedure you can use links. Store all repeated attributes in one configuration file and link attributes in the from the other files to them.

Syntactics: street: $<linkedattributes.street>,

Attribute “street” will be set be the value “street” from file “linkedattributes.json”.

As value you can use any types that ConfigureMe support.

Please do not create very complex links in order to not confused yourself.

ConfigureAlso

New annotation @ConfigureAlso helps to configure one configurable object inside another one without formal call of configuration manager.

Thus you have configA and configB. And configA is a field in configB. You just annotated field of configA as @ConfigureAlso.

And again it is supporting any nesting that you need.

Full example can be found here.

All these features support “all files monitoring”, that is mean that all included or liked files changes will call reconfiguration of the configurable object.

Comments and suggestions are welcome.

Post a Comment

Your email address will not be published.