##### Overwriting parameters of features from a feature group

[[feature-param-overwrites]]The configuration of a feature can be customized by adding `include` element with `feature-id` attribute targeting its ID to the body of the `feature-group` element. E.g. suppose this is our feature spec:
[source,xml]
----
<feature-spec xmlns="urn:jboss:galleon:feature-spec:1.0" name="feature1">
  <params>
    <param name="a" feature-id="true"/>
    <param name="b" default="bb"/>
    <param name="c" nillable="true"/>
    <param name="d"/>
  </params>
</feature-spec>
----

This is our feature group spec:
[source,xml]
----
<feature-group-spec name="group1" xmlns="urn:jboss:galleon:feature-group:1.0">
  <feature spec="feature1">
    <param name="a" value="a1"/>
    <param name="c" value="group1"/>
    <param name="d" value="group1"/>
  </feature>
</feature-group-spec>
----

And this is our config:
[source,xml]
----
<config name="main">
  <feature-group name="group1">
    <include feature-id="feature1:a=a1">
      <param name="d" value="config"/>
    </include>
  </feature-group>
</config>
----

The resolved configuration will consist of one feature with the following configuration
[%header,options="autowidth"]
|===
|Feature spec |a |b |c |d
|feature1 |a1 |bb |group1 |config
|===

Let's now suppose that we have two feature specs with a parent-child relationship
[source,xml]
----
<feature-spec xmlns="urn:jboss:galleon:feature-spec:1.0" name="featureP">
  <params>
    <param name="parent" feature-id="true"/>
  </params>
</feature-spec>
----

[source,xml]
----
<feature-spec xmlns="urn:jboss:galleon:feature-spec:1.0" name="featureC">
  <refs>
    <ref feature="featureP">
  </refs>
  <params>
    <param name="parent" feature-id="true"/>
    <param name="child" feature-id="true"/>
    <param name="a"/>
    <param name="b"/>
  </params>
</feature-spec>
----

The group is defined as
[source,xml]
----
<feature-group-spec name="group1" xmlns="urn:jboss:galleon:feature-group:1.0">
  <feature spec="featureP">
    <param name="parent" value="p1"/>
    <feature spec="featureC">
      <param name="child" value="c1"/>
      <param name="a" value="group1"/>
      <param name="b" value="group1"/>
    </feature>
  </feature>
</feature-group-spec>
----

And we want to customize the child feature when including `group1` into the config.
[source,xml]
----
<config name="main">
  <feature-group name="group1">
    <include feature-id="featureC:parent=p1,child=c1">
      <param name="b" value="config"/>
    </include>
  </feature-group>
</config>
----

The resolved configuration will contain two features:

[%header,options="autowidth"]
|===
|Feature spec |parent
|featureP |p1
|===

[%header,options="autowidth"]
|===
|Feature spec |child |a |b
|featureC |p1 |c1 |group1 |config
|===

