# Codehaus Cargo : Custom Configuration

Created by Former user, last modified by S. Ali Tokmen on Jan 28, 2021

### Definition

A user-provided configuration to use instead of the default Cargo-provided ones

### Explanations

Cargo allows you to plug your own custom configuration implementation.

### Support Matrix

Java | Ant | Maven 3
--- | --- | ---

### Java API

You can register your configuration against the `DefaultConfigurationFactory` class. It's optional and only required if you want to let users use the `DefaultConfigurationFactory` class to instantiate your configuration. For example you could write:

    ConfigurationFactory factory = new DefaultConfigurationFactory();
    factory.registerConfiguration("containerIdOfAssociatedContainer", ContainerType.INSTALLED,
        ConfigurationType.STANDALONE, MyCustomConfiguration.class);

### Ant Task

Use the `class` attribute of the `configuration` element. For example:

    <cargo containerId="containerIdOfAssociatedContainer" [...]>
      <configuration class="package.to.MyCustomConfiguration" type="standalone">
    [...]

### Maven 3 Plugin

Use the `implementation` element under the `configuration` element. For example:

    [...]
    <configuration>
      <container>
        <containerId>containerIdOfAssociatedContainer</containerId>
        [...]
      </container>
      <configuration>
        <implementation>package.to.MyCustomConfiguration</implementation>
        <type>standalone</type>
      </configuration>
    [...]