Skip to content

Commit

Permalink
[MNG-8519] Introduce Request / Results / RequestTrace (#2050)
Browse files Browse the repository at this point in the history
  • Loading branch information
gnodet authored Jan 29, 2025
1 parent 98060ef commit 2155d9f
Show file tree
Hide file tree
Showing 51 changed files with 1,448 additions and 301 deletions.
5 changes: 5 additions & 0 deletions api/maven-api-core/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,11 @@
<artifactId>junit-jupiter-api</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<scope>test</scope>
</dependency>
</dependencies>

</project>
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,6 @@
/**
* The session to install / deploy / resolve artifacts and dependencies.
*
* TODO: add request trace so that requests can be linked together and through the resolver
* TODO: add a Request interface holding session + parent request
*
* @since 4.0.0
*/
@Experimental
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,7 @@
*/
@Experimental
@Immutable
public interface ArtifactCoordinatesFactoryRequest {

@Nonnull
Session getSession();
public interface ArtifactCoordinatesFactoryRequest extends Request<Session> {

String getGroupId();

Expand Down Expand Up @@ -112,6 +109,7 @@ static ArtifactFactoryRequestBuilder builder() {
@NotThreadSafe
class ArtifactFactoryRequestBuilder {
private Session session;
private RequestTrace trace;
private String groupId;
private String artifactId;
private String version;
Expand All @@ -127,6 +125,11 @@ public ArtifactFactoryRequestBuilder session(Session session) {
return this;
}

public ArtifactFactoryRequestBuilder trace(RequestTrace trace) {
this.trace = trace;
return this;
}

public ArtifactFactoryRequestBuilder groupId(String groupId) {
this.groupId = groupId;
return this;
Expand Down Expand Up @@ -164,7 +167,7 @@ public ArtifactFactoryRequestBuilder coordinateString(String coordinateString) {

public ArtifactCoordinatesFactoryRequest build() {
return new DefaultArtifactFactoryRequestArtifact(
session, groupId, artifactId, version, classifier, extension, type, coordinateString);
session, trace, groupId, artifactId, version, classifier, extension, type, coordinateString);
}

private static class DefaultArtifactFactoryRequestArtifact extends BaseRequest<Session>
Expand All @@ -180,14 +183,15 @@ private static class DefaultArtifactFactoryRequestArtifact extends BaseRequest<S
@SuppressWarnings("checkstyle:ParameterNumber")
DefaultArtifactFactoryRequestArtifact(
@Nonnull Session session,
RequestTrace trace,
String groupId,
String artifactId,
String version,
String classifier,
String extension,
String type,
String coordinatesString) {
super(session);
super(session, trace);
this.groupId = groupId;
this.artifactId = artifactId;
this.version = version;
Expand Down Expand Up @@ -230,6 +234,18 @@ public String getType() {
public String getCoordinatesString() {
return coordinatesString;
}

@Override
public String toString() {
return "ArtifactFactoryRequestArtifact[" + "groupId='"
+ groupId + '\'' + ", artifactId='"
+ artifactId + '\'' + ", version='"
+ version + '\'' + ", classifier='"
+ classifier + '\'' + ", extension='"
+ extension + '\'' + ", type='"
+ type + '\'' + ", coordinatesString='"
+ coordinatesString + '\'' + ']';
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
import org.apache.maven.api.annotations.Experimental;
import org.apache.maven.api.annotations.Immutable;
import org.apache.maven.api.annotations.Nonnull;
import org.apache.maven.api.annotations.Nullable;

import static java.util.Objects.requireNonNull;

Expand All @@ -37,10 +38,7 @@
*/
@Experimental
@Immutable
public interface ArtifactDeployerRequest {

@Nonnull
Session getSession();
public interface ArtifactDeployerRequest extends Request<Session> {

@Nonnull
RemoteRepository getRepository();
Expand Down Expand Up @@ -69,6 +67,7 @@ static ArtifactDeployerRequest build(

class ArtifactDeployerRequestBuilder {
Session session;
RequestTrace trace;
RemoteRepository repository;
Collection<ProducedArtifact> artifacts;
int retryFailedDeploymentCount;
Expand All @@ -81,6 +80,12 @@ public ArtifactDeployerRequestBuilder session(Session session) {
return this;
}

@Nonnull
public ArtifactDeployerRequestBuilder trace(RequestTrace trace) {
this.trace = trace;
return this;
}

@Nonnull
public ArtifactDeployerRequestBuilder repository(RemoteRepository repository) {
this.repository = repository;
Expand All @@ -99,7 +104,8 @@ public ArtifactDeployerRequestBuilder retryFailedDeploymentCount(int retryFailed

@Nonnull
public ArtifactDeployerRequest build() {
return new DefaultArtifactDeployerRequest(session, repository, artifacts, retryFailedDeploymentCount);
return new DefaultArtifactDeployerRequest(
session, trace, repository, artifacts, retryFailedDeploymentCount);
}

private static class DefaultArtifactDeployerRequest extends BaseRequest<Session>
Expand All @@ -111,10 +117,11 @@ private static class DefaultArtifactDeployerRequest extends BaseRequest<Session>

DefaultArtifactDeployerRequest(
@Nonnull Session session,
@Nullable RequestTrace trace,
@Nonnull RemoteRepository repository,
@Nonnull Collection<ProducedArtifact> artifacts,
int retryFailedDeploymentCount) {
super(session);
super(session, trace);
this.repository = requireNonNull(repository, "repository cannot be null");
this.artifacts = List.copyOf(requireNonNull(artifacts, "artifacts cannot be null"));
this.retryFailedDeploymentCount = retryFailedDeploymentCount;
Expand All @@ -136,6 +143,14 @@ public Collection<ProducedArtifact> getArtifacts() {
public int getRetryFailedDeploymentCount() {
return retryFailedDeploymentCount;
}

@Override
public String toString() {
return "ArtifactDeployerRequest[" + "repository="
+ repository + ", artifacts="
+ artifacts + ", retryFailedDeploymentCount="
+ retryFailedDeploymentCount + ']';
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import org.apache.maven.api.annotations.Immutable;
import org.apache.maven.api.annotations.Nonnull;
import org.apache.maven.api.annotations.NotThreadSafe;
import org.apache.maven.api.annotations.Nullable;

import static java.util.Objects.requireNonNull;

Expand All @@ -33,10 +34,7 @@
*/
@Experimental
@Immutable
public interface ArtifactFactoryRequest {

@Nonnull
Session getSession();
public interface ArtifactFactoryRequest extends Request<Session> {

String getGroupId();

Expand Down Expand Up @@ -87,6 +85,7 @@ static ArtifactFactoryRequestBuilder builder() {
@NotThreadSafe
class ArtifactFactoryRequestBuilder {
private Session session;
private RequestTrace trace;
private String groupId;
private String artifactId;
private String version;
Expand All @@ -101,6 +100,11 @@ public ArtifactFactoryRequestBuilder session(Session session) {
return this;
}

public ArtifactFactoryRequestBuilder trace(RequestTrace trace) {
this.trace = trace;
return this;
}

public ArtifactFactoryRequestBuilder groupId(String groupId) {
this.groupId = groupId;
return this;
Expand Down Expand Up @@ -133,7 +137,7 @@ public ArtifactFactoryRequestBuilder type(String type) {

public ArtifactFactoryRequest build() {
return new DefaultArtifactFactoryRequest(
session, groupId, artifactId, version, classifier, extension, type);
session, trace, groupId, artifactId, version, classifier, extension, type);
}

private static class DefaultArtifactFactoryRequest extends BaseRequest<Session>
Expand All @@ -145,15 +149,17 @@ private static class DefaultArtifactFactoryRequest extends BaseRequest<Session>
private final String extension;
private final String type;

@SuppressWarnings("checkstyle:ParameterNumber")
DefaultArtifactFactoryRequest(
@Nonnull Session session,
@Nullable RequestTrace trace,
String groupId,
String artifactId,
String version,
String classifier,
String extension,
String type) {
super(session);
super(session, trace);
this.groupId = groupId;
this.artifactId = artifactId;
this.version = version;
Expand Down Expand Up @@ -191,6 +197,17 @@ public String getExtension() {
public String getType() {
return type;
}

@Override
public String toString() {
return "ArtifactFactoryRequest[" + "groupId='"
+ groupId + '\'' + ", artifactId='"
+ artifactId + '\'' + ", version='"
+ version + '\'' + ", classifier='"
+ classifier + '\'' + ", extension='"
+ extension + '\'' + ", type='"
+ type + '\'' + ']';
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -39,10 +39,7 @@
*/
@Experimental
@Immutable
public interface ArtifactInstallerRequest {

@Nonnull
Session getSession();
public interface ArtifactInstallerRequest extends Request<Session> {

@Nonnull
Collection<ProducedArtifact> getArtifacts();
Expand All @@ -63,6 +60,7 @@ static ArtifactInstallerRequest build(Session session, Collection<ProducedArtifa
@NotThreadSafe
class ArtifactInstallerRequestBuilder {
Session session;
RequestTrace trace;
Collection<ProducedArtifact> artifacts = Collections.emptyList();

ArtifactInstallerRequestBuilder() {}
Expand All @@ -73,6 +71,12 @@ public ArtifactInstallerRequestBuilder session(@Nonnull Session session) {
return this;
}

@Nonnull
public ArtifactInstallerRequestBuilder trace(RequestTrace trace) {
this.trace = trace;
return this;
}

@Nonnull
public ArtifactInstallerRequestBuilder artifacts(@Nullable Collection<ProducedArtifact> artifacts) {
this.artifacts = artifacts != null ? artifacts : Collections.emptyList();
Expand All @@ -81,15 +85,18 @@ public ArtifactInstallerRequestBuilder artifacts(@Nullable Collection<ProducedAr

@Nonnull
public ArtifactInstallerRequest build() {
return new DefaultArtifactInstallerRequest(session, artifacts);
return new DefaultArtifactInstallerRequest(session, trace, artifacts);
}

static class DefaultArtifactInstallerRequest extends BaseRequest<Session> implements ArtifactInstallerRequest {

private final Collection<ProducedArtifact> artifacts;

DefaultArtifactInstallerRequest(@Nonnull Session session, @Nonnull Collection<ProducedArtifact> artifacts) {
super(session);
DefaultArtifactInstallerRequest(
@Nonnull Session session,
@Nullable RequestTrace trace,
@Nonnull Collection<ProducedArtifact> artifacts) {
super(session, trace);
this.artifacts = List.copyOf(requireNonNull(artifacts, "artifacts cannot be null"));
}

Expand All @@ -98,6 +105,11 @@ static class DefaultArtifactInstallerRequest extends BaseRequest<Session> implem
public Collection<ProducedArtifact> getArtifacts() {
return artifacts;
}

@Override
public String toString() {
return "ArtifactInstallerRequest[" + "artifacts=" + artifacts + ']';
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,7 @@
*/
@Experimental
@Immutable
public interface ArtifactResolverRequest {
@Nonnull
Session getSession();
public interface ArtifactResolverRequest extends Request<Session> {

@Nonnull
Collection<? extends ArtifactCoordinates> getCoordinates();
Expand Down Expand Up @@ -78,6 +76,7 @@ static ArtifactResolverRequest build(
@NotThreadSafe
class ArtifactResolverRequestBuilder {
Session session;
RequestTrace trace;
Collection<? extends ArtifactCoordinates> coordinates;
List<RemoteRepository> repositories;

Expand All @@ -89,6 +88,12 @@ public ArtifactResolverRequestBuilder session(Session session) {
return this;
}

@Nonnull
public ArtifactResolverRequestBuilder trace(RequestTrace trace) {
this.trace = trace;
return this;
}

@Nonnull
public ArtifactResolverRequestBuilder coordinates(Collection<? extends ArtifactCoordinates> coordinates) {
this.coordinates = coordinates;
Expand All @@ -103,7 +108,7 @@ public ArtifactResolverRequestBuilder repositories(List<RemoteRepository> reposi

@Nonnull
public ArtifactResolverRequest build() {
return new DefaultArtifactResolverRequest(session, coordinates, repositories);
return new DefaultArtifactResolverRequest(session, trace, coordinates, repositories);
}

private static class DefaultArtifactResolverRequest extends BaseRequest<Session>
Expand All @@ -116,9 +121,10 @@ private static class DefaultArtifactResolverRequest extends BaseRequest<Session>

DefaultArtifactResolverRequest(
@Nonnull Session session,
@Nullable RequestTrace trace,
@Nonnull Collection<? extends ArtifactCoordinates> coordinates,
@Nonnull List<RemoteRepository> repositories) {
super(session);
super(session, trace);
this.coordinates = List.copyOf(requireNonNull(coordinates, "coordinates cannot be null"));
this.repositories = repositories;
}
Expand All @@ -134,6 +140,13 @@ public Collection<? extends ArtifactCoordinates> getCoordinates() {
public List<RemoteRepository> getRepositories() {
return repositories;
}

@Override
public String toString() {
return "ArtifactResolverRequest[" + "coordinates="
+ coordinates + ", repositories="
+ repositories + ']';
}
}
}
}
Loading

0 comments on commit 2155d9f

Please sign in to comment.