Rethinking my own proposal from below, I think it's mixing the concern of how to configure it in a maven plugin with how to handle it in the respective component. So instead of doing the filtering in the component, I guess it makes more sense to let the caller do this. Or in other words instead of passing a map with string keys and string values in the below described format, we should rather pass a map with string keys and a Properties object as the value, something like:
mytask={
   foo=one
   hi=hello
}
nexttask={
    bla=two
}
*={
  debug=true
}

And we use the special key "*" for parameters passed to all components.

Regards
Carsten

Am 07.11.2018 um 18:49 schrieb Carsten Ziegeler:
Hi,

we're currently discussing a similar problem for SLING-8078 with Simo. So maybe we can have a similar approach here (at least for how this is configured in the plugin configuration).

I'm fine to extend the HandlerContext to provide configuration properties. I guess we should plan for clashes in the names of those properties between the handlers.

In the above mentioned issue we have a similar problem where configuration is passed to tasks. In that case each task has a name and the configuration map will contain keys in the form of "taskname_propertyname". When the actually configuration is passed down to the task, this map will be filtered and only properties without a prefix or with the right prefix will be passed. And that prefixed is removed.

For example if these parameters are passed from the plugin
mytask_foo=one
mytask_hi=hello
nexttask_bla=two
debug=true

and the task named "mytask" is invoked, the following paramters are available through the context to that task:
foo=one
hi=hello
debug=true

And then we have two types of handlers in your case, the PostProcessHandler and the MergeHandler. Do we need to distinguish between those when it comes to configuration?

Regards
Carsten

Am 07.11.2018 um 17:46 schrieb David Bosschaert:
Hi all,



I would like to be able to send some parameters to my Feature Model
PostProcessHandler when its run from the slingfeature-maven-plugin. The
handlers in the org.apache.sling.feature.extension.apiregions component
generate files for the runtime component. I would like to be able to
configure where these files are written out so that I can later use them.


I was wondering what would be the best way to pass configuration to a
PostProcessHandler from the slingfeature-maven-plugin? There is already the
HandlerContext class passed to the handler, so maybe we can expand that
with a configuration map? Maybe as an extra tag in the <aggregate> section:


<aggregate>

   <classifier/>

   <title/>

   <description/>

   <markAsFinal/>

   <filesInclude/>

   <filesExclude/>

   <includeArtifact/>

   <includeClassifier/>

   <handlerConfig> <!-- something like this one? -->

     <myKey>myvalue</myKey>

   </handlerConfig>

</aggregate>


Best regards,


David



--
Carsten Ziegeler
Adobe Research Switzerland
cziege...@apache.org

Reply via email to