[Hawkular-dev] Feature packs - a new way of packaging for WildFly

Peter Palaga ppalaga at redhat.com
Tue Nov 24 08:38:37 EST 2015


An update: I have a working feature pack setup in the new Nest repo [1].
There is a nest feature pack in [2] that is used to produce a distro [3, 
4] to run the integration tests [5].

Note that:

(1) this testing distro is a light weight distro - the jars that are 
usually there in modules are not there, they are just referred to using 
something like <artifact name="antlr:antlr:2.7.7"/> that the booting WF 
instance resolves against local maven repo. This aspect is controlled by 
copy-module-artifacts attribute in [3].

(2) this testing distro is not zipped using the assembly plugin.

Both (1) and (2) make the itest build faster.

The Nest feature pack [2] can be used as a dependency both (i) in other 
Hawkular components that need it in their itests and (ii) in Hawkular 
main distro.

[1] https://github.com/hawkular/hawkular-nest/pull/1
[2] 
https://github.com/hawkular/hawkular-nest/tree/0bd58b1f3787ccfa2ad94d824d2dcb0a8e31a602/hawkular-nest-feature-pack
[3] 
https://github.com/hawkular/hawkular-nest/blob/0bd58b1f3787ccfa2ad94d824d2dcb0a8e31a602/hawkular-nest-itest-parent/hawkular-nest-itest/server-provisioning.xml#L20
[4] 
https://github.com/hawkular/hawkular-nest/blob/0bd58b1f3787ccfa2ad94d824d2dcb0a8e31a602/hawkular-nest-itest-parent/hawkular-nest-itest/pom.xml#L93
[5] 
https://github.com/hawkular/hawkular-nest/blob/0bd58b1f3787ccfa2ad94d824d2dcb0a8e31a602/hawkular-nest-itest-parent/hawkular-nest-itest/src/test/java/org/hawkular/nest/StatusEndpointITest.java

Best,

Peter


On 2015-11-19 17:21, John Mazzitelli wrote:
> Our usage of Libor's mvn plugin is really minimal now (and in fact we probably do not even need it anymore - we don't really use Libor's mvn plugin anywhere but in that wf-extension module and that is only used during development if someone wants. I rarely use it).
>
> But the big piece that we DO use is Libor's API to build our agent installer [1]. We extensively use the Java API Libor refactored out of his maven plugin - see [2].
>
> [1] https://github.com/hawkular/hawkular-agent/blob/master/hawkular-wildfly-agent-installer/pom.xml#L36-L40
> [2] https://github.com/hawkular/hawkular-agent/tree/master/wildfly-module-installer
>
> ----- Original Message -----
>> mazz, I actually hoped to be able to replace all uses of
>> wildfly-extension-plugin with the two new plugins. Do you know of a
>> functionality of the wildfly-extension-plugin that any of the two new
>> plugins does not cover? -- P
>>
>> On 2015-11-19 02:08, John Mazzitelli wrote:
>>> And we can take these fat feature packs and use the
>>> wildfly-extension-plugin maven plugin (and API) that Libor wrote to
>>> install these feature packs in an installed WildFly server - or you can
>>> use it to write your own customized installer (like we did for the agent).
>>>
>>> The Agent Installer is built on top of Libor's maven plugin (it uses the
>>> API that the maven plugin is built on top of). You can see how we use the
>>> agent installer today in the kettle build - we use it to install the agent
>>> into kettle (aka the hawkular distro) during the build - see here:
>>>
>>> https://github.com/hawkular/hawkular/blob/master/dist/pom.xml#L240-L285
>>>
>>> If you happen to have a wildfly extension module zipped up (aka you have a
>>> fat feature pack or something else that zipped up your module), you can
>>> use the maven wildfly extension plugin to install it. See here: (this is
>>> the agent wf-extension module - the pom here lets you install an agent by
>>> building this wf extension module zip and running the
>>> wildfly-extension:deploy goal)
>>>
>>> https://github.com/hawkular/hawkular-agent/blob/master/hawkular-wildfly-agent-wf-extension/pom.xml#L99-L113
>>>
>>> ----- Original Message -----
>>>> Hi *,
>>>>
>>>> Some of you might have heart of the $subj already. For others: wf
>>>> feature packs are lightweight recipes for building fat WF distros.
>>>> wildfly-feature-pack-build-maven-plugin typically produces a zip
>>>> containing some xml config but no jars/wars/ears.
>>>> wildfly-server-provisioning-maven-plugin is there to take the recipes
>>>> and make fat distros out of them.
>>>>
>>>> Why I am bringing this topic: It seems that feature packs could help us
>>>> to consolidate all our modules, itest distros and final distros in such
>>>> a way that configuration will not be duplicated anymore. I hope to be
>>>> able to do this together with the upgrade to WF10.
>>>>
>>>> There is not much docs about the two plugins except for this terse wiki
>>>> page: https://developer.jboss.org/wiki/WildflyBuildProcess
>>>>
>>>> Nevertheless, examples can be found in wildfly and wildfly-core source
>>>> trees.
>>>>
>>>> We started producing a feature pack in Agent recently:
>>>> https://github.com/hawkular/hawkular-agent/tree/master/hawkular-wildfly-agent-feature-pack
>>>>
>>>> Thanks,
>>>>
>>>> Peter
>>>>
>>>>
>>>> _______________________________________________
>>>> hawkular-dev mailing list
>>>> hawkular-dev at lists.jboss.org
>>>> https://lists.jboss.org/mailman/listinfo/hawkular-dev
>>>>
>>> _______________________________________________
>>> hawkular-dev mailing list
>>> hawkular-dev at lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/hawkular-dev
>>>
>>
>>
> _______________________________________________
> hawkular-dev mailing list
> hawkular-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/hawkular-dev
>



More information about the hawkular-dev mailing list