mirror of
https://github.com/apache/maven-mvnd.git
synced 2026-01-13 07:04:14 +08:00
This commit is contained in:
@@ -94,6 +94,7 @@ import org.mvndaemon.mvnd.logging.internal.Slf4jLoggerManager;
|
||||
import org.mvndaemon.mvnd.logging.smart.BuildEventListener;
|
||||
import org.mvndaemon.mvnd.logging.smart.LoggingExecutionListener;
|
||||
import org.mvndaemon.mvnd.logging.smart.LoggingOutputStream;
|
||||
import org.mvndaemon.mvnd.transfer.DaemonMavenTransferListener;
|
||||
import org.slf4j.ILoggerFactory;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
@@ -1301,14 +1302,14 @@ public class DaemonMavenCli {
|
||||
// If we're logging to a file then we don't want the console transfer listener as it will spew
|
||||
// download progress all over the place
|
||||
//
|
||||
return getConsoleTransferListener(cliRequest.commandLine.hasOption(CLIManager.DEBUG));
|
||||
return getDaemonTransferListener();
|
||||
} else {
|
||||
return getBatchTransferListener();
|
||||
}
|
||||
}
|
||||
|
||||
protected TransferListener getConsoleTransferListener(boolean printResourceNames) {
|
||||
return new Slf4jMavenTransferListener(); // see https://github.com/mvndaemon/mvnd/issues/284
|
||||
protected TransferListener getDaemonTransferListener() {
|
||||
return new DaemonMavenTransferListener(buildEventListener);
|
||||
}
|
||||
|
||||
protected TransferListener getBatchTransferListener() {
|
||||
|
||||
@@ -25,6 +25,7 @@ import org.apache.maven.execution.ExecutionEvent;
|
||||
import org.apache.maven.execution.MavenSession;
|
||||
import org.apache.maven.plugin.MojoExecution;
|
||||
import org.apache.maven.project.MavenProject;
|
||||
import org.eclipse.aether.transfer.TransferEvent;
|
||||
import org.mvndaemon.mvnd.builder.DependencyGraph;
|
||||
import org.mvndaemon.mvnd.common.Message;
|
||||
import org.mvndaemon.mvnd.common.Message.BuildException;
|
||||
@@ -112,6 +113,41 @@ public class ClientDispatcher extends BuildEventListener {
|
||||
queue.add(Message.log(trimTrailingEols(msg)));
|
||||
}
|
||||
|
||||
public void transfer(String projectId, TransferEvent e) {
|
||||
int event;
|
||||
switch (e.getType()) {
|
||||
case INITIATED:
|
||||
event = Message.TRANSFER_INITIATED;
|
||||
break;
|
||||
case STARTED:
|
||||
event = Message.TRANSFER_STARTED;
|
||||
break;
|
||||
case PROGRESSED:
|
||||
event = Message.TRANSFER_PROGRESSED;
|
||||
break;
|
||||
case CORRUPTED:
|
||||
event = Message.TRANSFER_CORRUPTED;
|
||||
break;
|
||||
case SUCCEEDED:
|
||||
event = Message.TRANSFER_SUCCEEDED;
|
||||
break;
|
||||
case FAILED:
|
||||
event = Message.TRANSFER_FAILED;
|
||||
break;
|
||||
default:
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
int request = e.getRequestType().ordinal();
|
||||
String repositoryId = e.getResource().getRepositoryId();
|
||||
String repositoryUrl = e.getResource().getRepositoryUrl();
|
||||
String resourceName = e.getResource().getResourceName();
|
||||
long contentLength = e.getResource().getContentLength();
|
||||
long transferredBytes = e.getTransferredBytes();
|
||||
String exception = e.getException() != null ? e.getException().toString() : null;
|
||||
queue.add(Message.transfer(projectId, event, request, repositoryId, repositoryUrl, resourceName,
|
||||
contentLength, transferredBytes, exception));
|
||||
}
|
||||
|
||||
private MavenProject getCurrentProject(MavenSession mavenSession) {
|
||||
// Workaround for https://issues.apache.org/jira/browse/MNG-6979
|
||||
// MavenSession.getCurrentProject() does not return the correct value in some cases
|
||||
|
||||
@@ -567,6 +567,15 @@ public class Server implements AutoCloseable, Runnable {
|
||||
return 3;
|
||||
case Message.MOJO_STARTED:
|
||||
return 4;
|
||||
case Message.TRANSFER_INITIATED:
|
||||
case Message.TRANSFER_STARTED:
|
||||
return 40;
|
||||
case Message.TRANSFER_PROGRESSED:
|
||||
return 41;
|
||||
case Message.TRANSFER_CORRUPTED:
|
||||
case Message.TRANSFER_SUCCEEDED:
|
||||
case Message.TRANSFER_FAILED:
|
||||
return 42;
|
||||
case Message.PROJECT_LOG_MESSAGE:
|
||||
return 50;
|
||||
case Message.BUILD_LOG_MESSAGE:
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
package org.mvndaemon.mvnd.logging.smart;
|
||||
|
||||
import org.apache.maven.execution.ExecutionEvent;
|
||||
import org.eclipse.aether.transfer.TransferEvent;
|
||||
|
||||
/**
|
||||
* An abstract build event sink.
|
||||
@@ -47,6 +48,8 @@ public abstract class BuildEventListener {
|
||||
public void log(String msg) {
|
||||
}
|
||||
|
||||
public void transfer(String projectId, TransferEvent e) {
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -74,4 +77,6 @@ public abstract class BuildEventListener {
|
||||
public abstract void fail(Throwable t) throws Exception;
|
||||
|
||||
public abstract void log(String msg);
|
||||
|
||||
public abstract void transfer(String projectId, TransferEvent e);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
/*
|
||||
* Copyright 2021 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.mvndaemon.mvnd.transfer;
|
||||
|
||||
import org.eclipse.aether.transfer.TransferCancelledException;
|
||||
import org.eclipse.aether.transfer.TransferEvent;
|
||||
import org.eclipse.aether.transfer.TransferListener;
|
||||
import org.mvndaemon.mvnd.logging.smart.BuildEventListener;
|
||||
import org.mvndaemon.mvnd.logging.smart.ProjectBuildLogAppender;
|
||||
|
||||
public class DaemonMavenTransferListener implements TransferListener {
|
||||
|
||||
private final BuildEventListener dispatcher;
|
||||
|
||||
public DaemonMavenTransferListener(BuildEventListener dispatcher) {
|
||||
this.dispatcher = dispatcher;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void transferInitiated(TransferEvent event) throws TransferCancelledException {
|
||||
dispatcher.transfer(ProjectBuildLogAppender.getProjectId(), event);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void transferStarted(TransferEvent event) throws TransferCancelledException {
|
||||
dispatcher.transfer(ProjectBuildLogAppender.getProjectId(), event);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void transferProgressed(TransferEvent event) throws TransferCancelledException {
|
||||
dispatcher.transfer(ProjectBuildLogAppender.getProjectId(), event);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void transferCorrupted(TransferEvent event) throws TransferCancelledException {
|
||||
dispatcher.transfer(ProjectBuildLogAppender.getProjectId(), event);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void transferSucceeded(TransferEvent event) {
|
||||
dispatcher.transfer(ProjectBuildLogAppender.getProjectId(), event);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void transferFailed(TransferEvent event) {
|
||||
dispatcher.transfer(ProjectBuildLogAppender.getProjectId(), event);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user