All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.fabric8.maven.docker.config.BuildXConfiguration Maven / Gradle / Ivy

The newest version!
package io.fabric8.maven.docker.config;

import io.fabric8.maven.docker.util.EnvUtil;
import org.apache.maven.plugins.annotations.Parameter;

import javax.annotation.Nonnull;
import java.io.Serializable;
import java.util.List;

public class BuildXConfiguration implements Serializable {

    /**
     * Builder instance name
     */
    @Parameter
    private String builderName;

    /**
     * Configuration file to create builder
     */
    @Parameter
    private String configFile;

    /**
     * Location of docker state, including builder configurations
     */
    @Parameter
    private String dockerStateDir;

    /**
     * List of platforms for multi-architecture build
     */
    @Parameter
    private List platforms;

    /**
     * Attestation configuration
     */
    @Parameter
    private AttestationConfiguration attestations;

    public String getBuilderName() {
        return builderName;
    }

    public String getConfigFile() {
        return configFile;
    }

    public String getDockerStateDir() {
        return dockerStateDir;
    }

    public boolean isBuildX() {
        return !getPlatforms().isEmpty();
    }

    @Nonnull
    public List getPlatforms() {
        return EnvUtil.splitAtCommasAndTrim(platforms);
    }

    public AttestationConfiguration getAttestations() {
        return attestations;
    }

    public static class Builder {

        private final BuildXConfiguration config = new BuildXConfiguration();
        private boolean isEmpty = true;

        public BuildXConfiguration build() {
            return isEmpty ? null : config;
        }

        public Builder builderName(String builderName) {
            config.builderName = builderName;
            if (builderName != null) {
                isEmpty = false;
            }
            return this;
        }

        public Builder configFile(String configFile) {
            config.configFile = configFile;
            if (configFile != null) {
                isEmpty = false;
            }
            return this;
        }

        public Builder dockerStateDir(String dockerStateDir) {
            config.dockerStateDir = dockerStateDir;
            if (dockerStateDir != null) {
                isEmpty = false;
            }
            return this;
        }

        public Builder platforms(List platforms) {
            config.platforms = EnvUtil.removeEmptyEntries(platforms);
            if (!config.platforms.isEmpty()) {
                isEmpty = false;
            }
            return this;
        }

        public Builder attestations(AttestationConfiguration attestations) {
            config.attestations = attestations;
            if (attestations != null) {
                isEmpty = false;
            }
            return this;
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy