Idea: Container Installer Extension
lfryc Jul 2, 2013 7:32 AMHey guys,
I have created a simple extension which allow to unpack a container distribution for managed container adapter.
It allows resolution of container distribution from:
- Maven G:A:V (using ShrinkWrap Resolver)
- URL (file:///.., http://..)
This solution basically removes a need for unpacking the container distribution from Maven.
I have already found several cases where it would be beneficial to use it and also Ondra Zizka is interested.
----
The configuration is done in arquillian.xml.
At the end, extension's configuration could look like:
<extension qualifier="container-installer">
      <property name="installation">{group:artifactId:version}|http://...|file://...}</property>
        <property name="target">${project.build.directory}</property>
        <property name="uninstallAfterSuite">true</property>
</extension>
Or better, it could hook into configuration of containers, so that each configuration will have associated distribution.
    <container qualifier="jboss" default="true">
        <configuration>
            <property name="jbossHome">${project.build.directory}/${jbossHome}</property>
            
            <!-- the location of distribution ZIP -->
            <property name="installation">{group:artifactId:version}|http://...|file://...}</property>
            <!-- the location of configuration files that we need to rewrite -->
              <property name="installConfiguration">{group:artifactId:version}|http://...|file://...}</property>
              <property name="installationTarget">${project.build.directory}</property>
              <property name="uninstallAfterSuite">true</property>
        </configuration>
    </container>
It occurs to me that it would be also beneficial when this extension could setup containerHome automatically after resolution of a binary and its expansion, in this case it would set ${jbossHome} env property.
----
The container installation can also provide some useful event hooks:
- InstallContainer
- ConfigureInstalledContainer
- UnconfigureInstalledContainer
- UninstallContainer
You can use arbitrary method to configure container, e.g. use ShrinkWrap Descriptors to rewrite container's XML configuration.
----
Would you find this extension useful?
 
    