DSL stands for domain-specific language - in this case language created for storage of configuration.
Now we use domain based configuration which means that our configuration file is not a flat key=value storage but it defines objects, it’s properties and assigned values.
To illustrate it better let’s start with a simple example. In properties file in order to configure PubSub component named
pubsub
you would use following properties:
--comp-name-1=pubsub --comp-class-1=tigase.pubsub.PubSubComponent pubsub/test[B]=true
In DSL based configuration this would be replaced by following block
pubsub (class: tigase.pubsub.PubSubComponent) { # comment test = true }
in which we define bean with name pubsub
and set it’s class inside ()
block to tigase.pubsub.PubSubComponent
.
We also use block between {}
chars to define properties which are related to bean.
Which means this properties will be passed only to this instance of Tigase PubSub Component, same as it was before where we
needed to add prefix.
Entries after #
are comments, to pass #
you need to wrap whole part containing it in ''
, ie. 'test#242'
Warning
If a string value assigned to a property contains any char from a following list =:,[]#+-*/
it needs to be wrapped in a ''
.