DeployTask.java

package org.docascode.ant;

import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Task;
import org.docascode.ant.types.Artifact;
import org.docascode.api.DeployCommand;
import org.docascode.api.DocAsCode;
import org.docascode.api.core.errors.DocAsCodeException;
import org.docascode.api.core.errors.NotADocAsCodeRepository;
import org.docascode.api.core.mvn.Artifacts;
import org.docascode.api.event.Event;
import org.docascode.api.listener.EventListener;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class DeployTask extends Task implements EventListener {
    private List<Artifacts> artifacts = new ArrayList<>();
    public void addConfiguredArtifact(Artifact artifact) throws DocAsCodeException {
        this.artifacts.add(artifact.toArtifacts());
    }

    private List<String> ids = new ArrayList<>();
    public void setIds(String ids){
        if (!ids.equals("")) {
            this.ids = Arrays.asList(ids.split(","));
        }
    }

    private String profile = "default";
    public void setProfile(String profile){
        this.profile=profile;
    }

    @Override
    public void execute() {
        try (DocAsCode docascode = DocAsCode.open(getProject().getBaseDir())){
            ((DeployCommand) docascode.deploy().addListener(this))
                    .addIds(this.ids)
                    .addArtifacts(this.artifacts)
                    .setProfile(profile)
                    .call()
                    .removeListener(this);
        } catch (DocAsCodeException | NotADocAsCodeRepository e) {
            throw new BuildException(e);
        }
    }

    @Override
    public void fireEvent(Event event) {
        log(event.getMessage());
    }
}