Chapter 1. Build Domain

The build domain is a domain for all build tools, like Maven or Ant.

1.1. Description

The build domain builds a specific pre-configured project or suite of projects.

1.2. Functional Interface

The following listing presents the Java Domain Interface. This interface also contains information about events raised by this domain.

/**
 * This domain can be used to build projects. The affected project is usually configured in the respective tool
 * connector.
 */
public interface BuildDomain extends Domain {

    /**
     * build the currently configured project. This method returns at once with an id. The build is conducted
     * asynchronously. The result can be retrieved using the events raised by this domain, which also contain the id.
     */
    @Raises({ BuildStartEvent.class, BuildSuccessEvent.class })
    String build();

    /**
     * build the currently configured project. This method returns at once with an id. The build is conducted
     * asynchronously. As soon as the build is finished an event is raised. The processId-field of the event must be
     * populated with the supplied processId.
     */
    @Raises({ BuildStartEvent.class, BuildSuccessEvent.class })
    void build(long processId);

}

1.3. Event Interface

The following interface presents the events a build connector can throw:

public interface BuildDomainEvents extends DomainEvents {

    void raiseEvent(BuildStartEvent e);

    void raiseEvent(BuildSuccessEvent e);

    void raiseEvent(BuildFailEvent e);
}