mirror of
https://github.com/apache/maven-mvnd.git
synced 2025-09-09 15:09:23 +00:00
This commit is contained in:
@@ -787,7 +787,7 @@ public abstract class Message {
|
||||
public static final int PUT = 2;
|
||||
|
||||
final String projectId;
|
||||
final int request;
|
||||
final int requestType;
|
||||
final String repositoryId;
|
||||
final String repositoryUrl;
|
||||
final String resourceName;
|
||||
@@ -795,13 +795,13 @@ public abstract class Message {
|
||||
final long transferredBytes;
|
||||
final String exception;
|
||||
|
||||
private TransferEvent(int type, String projectId, int request,
|
||||
private TransferEvent(int type, String projectId, int requestType,
|
||||
String repositoryId, String repositoryUrl,
|
||||
String resourceName, long contentLength, long transferredBytes,
|
||||
String exception) {
|
||||
super(type);
|
||||
this.projectId = projectId;
|
||||
this.request = request;
|
||||
this.requestType = requestType;
|
||||
this.repositoryId = repositoryId;
|
||||
this.repositoryUrl = repositoryUrl;
|
||||
this.resourceName = resourceName;
|
||||
@@ -814,8 +814,8 @@ public abstract class Message {
|
||||
return projectId;
|
||||
}
|
||||
|
||||
public int getRequest() {
|
||||
return request;
|
||||
public int getRequestType() {
|
||||
return requestType;
|
||||
}
|
||||
|
||||
public String getRepositoryId() {
|
||||
@@ -846,7 +846,7 @@ public abstract class Message {
|
||||
public String toString() {
|
||||
return mnemonic() + "{" +
|
||||
"projectId=" + projectId +
|
||||
", request=" + request +
|
||||
", requestType=" + requestType +
|
||||
", repositoryId='" + repositoryId + '\'' +
|
||||
", repositoryUrl='" + repositoryUrl + '\'' +
|
||||
", resourceName='" + resourceName + '\'' +
|
||||
@@ -879,7 +879,7 @@ public abstract class Message {
|
||||
public void write(DataOutputStream output) throws IOException {
|
||||
super.write(output);
|
||||
writeUTF(output, projectId);
|
||||
output.writeByte(request);
|
||||
output.writeByte(requestType);
|
||||
writeUTF(output, repositoryId);
|
||||
writeUTF(output, repositoryUrl);
|
||||
writeUTF(output, resourceName);
|
||||
@@ -943,11 +943,11 @@ public abstract class Message {
|
||||
return new ProjectEvent(Message.DISPLAY, projectId, message);
|
||||
}
|
||||
|
||||
public static TransferEvent transfer(String projectId, int event, int request,
|
||||
public static TransferEvent transfer(String projectId, int transferEventType, int requestType,
|
||||
String repositoryId, String repositoryUrl,
|
||||
String resourceName, long contentLength, long transferredBytes,
|
||||
String exception) {
|
||||
return new TransferEvent(event, projectId, request,
|
||||
return new TransferEvent(transferEventType, projectId, requestType,
|
||||
repositoryId, repositoryUrl, resourceName, contentLength, transferredBytes, exception);
|
||||
}
|
||||
|
||||
|
@@ -33,14 +33,24 @@ public class OsUtils {
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(OsUtils.class);
|
||||
private static final long KB = 1024;
|
||||
private static final String UNITS = "kmgt";
|
||||
private static final String UNITS = "Bkmgt";
|
||||
|
||||
private OsUtils() {
|
||||
|
||||
}
|
||||
|
||||
public static String kbTohumanReadable(long kb) {
|
||||
public static String bytesTohumanReadable(long bytes) {
|
||||
int unit = 0;
|
||||
while (bytes >= KB && unit < UNITS.length() - 1) {
|
||||
bytes /= KB;
|
||||
unit++;
|
||||
}
|
||||
String kbString = String.valueOf(bytes);
|
||||
return new StringBuilder(kbString.length() + 1).append(kbString).append(UNITS.charAt(unit)).toString();
|
||||
}
|
||||
|
||||
public static String kbTohumanReadable(long kb) {
|
||||
int unit = 1;
|
||||
while (kb >= KB && unit < UNITS.length() - 1) {
|
||||
kb /= KB;
|
||||
unit++;
|
||||
|
@@ -531,25 +531,26 @@ public class TerminalOutput implements ClientOutput {
|
||||
return null;
|
||||
}
|
||||
TransferEvent event = transfers.iterator().next();
|
||||
String action = event.getRequest() == TransferEvent.PUT ? "Uploading" : "Downloading";
|
||||
String action = event.getRequestType() == TransferEvent.PUT ? "Uploading" : "Downloading";
|
||||
if (transfers.size() == 1) {
|
||||
String direction = event.getRequest() == TransferEvent.PUT ? "to" : "from";
|
||||
String direction = event.getRequestType() == TransferEvent.PUT ? "to" : "from";
|
||||
long cur = event.getTransferredBytes();
|
||||
long max = event.getContentLength();
|
||||
String prg = OsUtils.kbTohumanReadable(cur / 1024) + " / " + OsUtils.kbTohumanReadable(max / 1024);
|
||||
AttributedStringBuilder asb = new AttributedStringBuilder();
|
||||
asb.append(action);
|
||||
asb.append(" ");
|
||||
asb.append(' ');
|
||||
asb.style(AttributedStyle.BOLD);
|
||||
asb.append(pathToMaven(event.getResourceName()));
|
||||
asb.style(AttributedStyle.DEFAULT);
|
||||
asb.append(" ");
|
||||
asb.append(' ');
|
||||
asb.append(direction);
|
||||
asb.append(" ");
|
||||
asb.append(' ');
|
||||
asb.append(event.getRepositoryId());
|
||||
if (cur > 0 && cur < max) {
|
||||
asb.append(": ");
|
||||
asb.append(prg);
|
||||
asb.append(' ');
|
||||
asb.append(OsUtils.bytesTohumanReadable(cur));
|
||||
asb.append('/');
|
||||
asb.append(OsUtils.bytesTohumanReadable(max));
|
||||
}
|
||||
return asb.toAttributedString();
|
||||
} else {
|
||||
|
@@ -1302,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 getDaemonTransferListener();
|
||||
return getConsoleTransferListener();
|
||||
} else {
|
||||
return getBatchTransferListener();
|
||||
}
|
||||
}
|
||||
|
||||
protected TransferListener getDaemonTransferListener() {
|
||||
return new DaemonMavenTransferListener(buildEventListener);
|
||||
protected TransferListener getConsoleTransferListener() {
|
||||
return new DaemonMavenTransferListener(buildEventListener, new Slf4jMavenTransferListener());
|
||||
}
|
||||
|
||||
protected TransferListener getBatchTransferListener() {
|
||||
|
@@ -26,6 +26,8 @@ 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.eclipse.aether.transfer.TransferEvent.EventType;
|
||||
import org.eclipse.aether.transfer.TransferEvent.RequestType;
|
||||
import org.mvndaemon.mvnd.builder.DependencyGraph;
|
||||
import org.mvndaemon.mvnd.common.Message;
|
||||
import org.mvndaemon.mvnd.common.Message.BuildException;
|
||||
@@ -114,37 +116,50 @@ public class ClientDispatcher extends BuildEventListener {
|
||||
}
|
||||
|
||||
public void transfer(String projectId, TransferEvent e) {
|
||||
int event;
|
||||
final 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();
|
||||
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("Unexpected " + EventType.class.getSimpleName() + ": " + e.getType());
|
||||
}
|
||||
final int requestType;
|
||||
switch (e.getRequestType()) {
|
||||
case GET:
|
||||
requestType = Message.TransferEvent.GET;
|
||||
break;
|
||||
case GET_EXISTENCE:
|
||||
requestType = Message.TransferEvent.GET_EXISTENCE;
|
||||
break;
|
||||
case PUT:
|
||||
requestType = Message.TransferEvent.PUT;
|
||||
break;
|
||||
default:
|
||||
throw new IllegalStateException("Unexpected " + RequestType.class.getSimpleName() + ": " + e.getRequestType());
|
||||
}
|
||||
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,
|
||||
queue.add(Message.transfer(projectId, event, requestType, repositoryId, repositoryUrl, resourceName,
|
||||
contentLength, transferredBytes, exception));
|
||||
}
|
||||
|
||||
|
@@ -24,38 +24,46 @@ import org.mvndaemon.mvnd.logging.smart.ProjectBuildLogAppender;
|
||||
public class DaemonMavenTransferListener implements TransferListener {
|
||||
|
||||
private final BuildEventListener dispatcher;
|
||||
private final TransferListener delegate;
|
||||
|
||||
public DaemonMavenTransferListener(BuildEventListener dispatcher) {
|
||||
public DaemonMavenTransferListener(BuildEventListener dispatcher, TransferListener delegate) {
|
||||
this.dispatcher = dispatcher;
|
||||
this.delegate = delegate;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void transferInitiated(TransferEvent event) throws TransferCancelledException {
|
||||
dispatcher.transfer(ProjectBuildLogAppender.getProjectId(), event);
|
||||
delegate.transferInitiated(event);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void transferStarted(TransferEvent event) throws TransferCancelledException {
|
||||
dispatcher.transfer(ProjectBuildLogAppender.getProjectId(), event);
|
||||
delegate.transferStarted(event);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void transferProgressed(TransferEvent event) throws TransferCancelledException {
|
||||
dispatcher.transfer(ProjectBuildLogAppender.getProjectId(), event);
|
||||
delegate.transferProgressed(event);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void transferCorrupted(TransferEvent event) throws TransferCancelledException {
|
||||
dispatcher.transfer(ProjectBuildLogAppender.getProjectId(), event);
|
||||
delegate.transferCorrupted(event);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void transferSucceeded(TransferEvent event) {
|
||||
dispatcher.transfer(ProjectBuildLogAppender.getProjectId(), event);
|
||||
delegate.transferSucceeded(event);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void transferFailed(TransferEvent event) {
|
||||
dispatcher.transfer(ProjectBuildLogAppender.getProjectId(), event);
|
||||
delegate.transferFailed(event);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user