...
Contributions are added using the contributions
element of the plugin configuration
as shown in the previous example. Note that the order of the contributions is not important: at startup, Fabric3 will introspect and order the contributions based on declared dependencies such as Java package imports (for details of dependency ordering, see Contribution Modularity).
Adding Configuration
By default, contributions are installed in the VM runtime image (i.e. under runtimes/vm/deploy
). If they should be deployed to the controller or another runtime configuration, use the contributionTarget
element:
Code Block | ||||
---|---|---|---|---|
| ||||
<plugins>
<plugin>
<groupId>org.codehaus.fabric3</groupId>
<artifactId>fabric3-assembly-plugin</artifactId>
...
<configuration>
<runtimeVersion>${fabric3.version}</runtimeVersion>
<contributionTarget>controller</contributionTarget>
<contributions>
<dependency>
<groupId>org.fabric3.samples</groupId>
<artifactId>gateway</artifactId>
<version>${app.version}</version>
</dependency>
<contributions>
</configuration>
</plugin>
...
</plugins>
|
Adding Configuration
Typically you will need to add runtime configuration to the produced image. This can be done by creating a systemConfig.xml file in the Maven module source
directory and including it in the plugin configuration under configurationFiles
:
...
Code Block | ||||
---|---|---|---|---|
| ||||
<plugins> <plugin> <groupId>org.codehaus.fabric3</groupId> <artifactId>fabric3-assembly-plugin</artifactId> <version>${fabric3.version}</version> <executions> <execution> <id>fabric3-assembly</id> <goals> <goal>fabric3-assembly</goal> </goals> </execution> </executions> <configuration> <runtimeVersion>${fabric3.version}</runtimeVersion> <profiles> <!-- JMS support --> <profile> <groupId>org.codehaus.fabric3</groupId> <artifactId>profile-jms</artifactId> <version>${fabric3.version}</version> </profile> <!-- JAX-RS support --> <profile> <groupId>org.codehaus.fabric3</groupId> <artifactId>profile-rs</artifactId> <version>${fabric3.version}</version> </profile> </profiles> <!-- add contributions --> <contributions> <dependency> <groupId>org.fabric3.samples</groupId> <artifactId>gateway</artifactId> <version>${app.version}</version> </dependency> <dependency> <groupId>org.fabric3.samples</groupId> <artifactId>backend</artifactId> <version>${app.version}</version> </dependency> </contributions> <!-- overlay configuration --> <configurationFiles> <copy> <source>../../../config/security.xml</source> <destination>runtimes/vm/config</destination> </copy> </configurationFiles> </configuration> </plugin> </plugins> |
Excluding Extensions
Runtime extensions included as part of the standard standalone runtime distribution can be removed using the removeExtensions
element:
Code Block | ||||
---|---|---|---|---|
| ||||
<plugins>
<plugin>
<groupId>org.codehaus.fabric3</groupId>
<artifactId>fabric3-assembly-plugin</artifactId>
...
<configuration>
<runtimeVersion>${fabric3.version}</runtimeVersion>
<!-- add contributions -->
<contributions>
<dependency>
<groupId>org.fabric3.samples</groupId>
<artifactId>gateway</artifactId>
<version>${app.version}</version>
</dependency>
<dependency>
<groupId>org.fabric3.samples</groupId>
<artifactId>backend</artifactId>
<version>${app.version}</version>
</dependency>
</contributions>
<!-- overlay configuration -->
<removeExtensions>
<dependency>
<groupId>org.codehaus.fabric3</groupId>
<artifactId>fabric3-management-jmx</artifactId>
<version>${app.version}</version>
</dependency>
</removeExtensions>
</configuration>
</plugin>
</plugins>
|