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