Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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
xml
xml
<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
xml
xml
<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
xml
xml
<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>