Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[MNG-8519] Introduce Request / Results / RequestTrace #2050

Merged
merged 2 commits into from
Jan 29, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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