Skip to content

Commit

Permalink
#6256: show maven downloading progress
Browse files Browse the repository at this point in the history
  • Loading branch information
jaroslawmalekcodete committed Nov 21, 2017
1 parent 837ea3b commit 4153c90
Show file tree
Hide file tree
Showing 5 changed files with 41 additions and 21 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ public void clearCloseCallbackList() {
}

public void open() {
Message parentMessage = getParentMessage();// can be null
this.parentMessage = InternalVariable.getParentHeader();
doOpen(parentMessage);
}

Expand Down Expand Up @@ -222,10 +222,7 @@ public void sendUpdate(final String propertyName, final Object value) {
}

private Message getParentMessage() {
if (this.parentMessage != null) {
return this.parentMessage;
}
return InternalVariable.getParentHeader();
return this.parentMessage;
}

public void handleMsg(Message parentMessage) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,21 +15,21 @@
*/
package com.twosigma.beakerx.kernel.commands;

import com.twosigma.beakerx.widgets.strings.Label;
import com.twosigma.beakerx.kernel.magic.command.functionality.ClasspathAddMvnMagicCommand;
import org.apache.maven.shared.invoker.InvocationOutputHandler;

public class MavenInvocationSilentOutputHandler implements InvocationOutputHandler {

private Label intProgress;
private ClasspathAddMvnMagicCommand.MvnLoggerWidget intProgress;

public MavenInvocationSilentOutputHandler(Label intProgress) {
public MavenInvocationSilentOutputHandler(ClasspathAddMvnMagicCommand.MvnLoggerWidget intProgress) {
this.intProgress = intProgress;
}

@Override
public void consumeLine(String line) {
if (line != null && !line.trim().isEmpty() && (line.matches("Downlo.+") || acceptLineWhichShowDownloadingProgress(line))) {
intProgress.setValue(line);
intProgress.sendLog(line);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@

import com.twosigma.beakerx.kernel.commands.MavenInvocationSilentOutputHandler;
import com.twosigma.beakerx.kernel.commands.MavenJarResolverSilentLogger;
import com.twosigma.beakerx.widgets.strings.Label;
import com.twosigma.beakerx.kernel.magic.command.functionality.ClasspathAddMvnMagicCommand;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.apache.maven.shared.invoker.DefaultInvocationRequest;
Expand Down Expand Up @@ -51,17 +51,17 @@ public MavenJarResolver(final ResolverParams commandParams) {
this.pathToMavenRepo = getOrCreateFile(commandParams.getPathToNotebookJars()).getAbsolutePath();
}

public AddMvnCommandResult retrieve(String groupId, String artifactId, String version, Label intProgress) {
public AddMvnCommandResult retrieve(String groupId, String artifactId, String version, ClasspathAddMvnMagicCommand.MvnLoggerWidget progress) {
File finalPom = null;
try {
finalPom = getPom(groupId, artifactId, version);
InvocationRequest request = createInvocationRequest();
request.setOffline(commandParams.getOffline());
request.setPomFile(finalPom);
Invoker invoker = getInvoker(intProgress);
intProgress.display();
Invoker invoker = getInvoker(progress);
progress.display();
InvocationResult invocationResult = invoker.execute(request);
intProgress.close();
progress.close();
return getResult(invocationResult, groupId, artifactId, version);
} catch (Exception e) {
return AddMvnCommandResult.error(e.getMessage());
Expand All @@ -70,12 +70,12 @@ public AddMvnCommandResult retrieve(String groupId, String artifactId, String ve
}
}

private Invoker getInvoker(Label intProgress) {
private Invoker getInvoker(ClasspathAddMvnMagicCommand.MvnLoggerWidget progress) {
Invoker invoker = new DefaultInvoker();
String mvn = findMvn();
System.setProperty("maven.home", mvn);
invoker.setLogger(new MavenJarResolverSilentLogger());
invoker.setOutputHandler(new MavenInvocationSilentOutputHandler(intProgress));
invoker.setOutputHandler(new MavenInvocationSilentOutputHandler(progress));
invoker.setLocalRepositoryDirectory(getOrCreateFile(this.commandParams.getPathToCache()));
return invoker;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import com.twosigma.beakerx.kernel.magic.command.MavenJarResolver;
import com.twosigma.beakerx.kernel.magic.command.outcome.MagicCommandOutcomeItem;
import com.twosigma.beakerx.kernel.magic.command.outcome.MagicCommandOutput;
import com.twosigma.beakerx.message.Message;
import com.twosigma.beakerx.widgets.strings.Label;

import java.util.Collection;
Expand Down Expand Up @@ -58,8 +59,8 @@ public MagicCommandOutcomeItem execute(MagicCommandExecutionParam param) {
return new MagicCommandOutput(MagicCommandOutput.Status.ERROR, ADD_MVN_FORMAT_ERROR_MESSAGE);
}
MavenJarResolver classpathAddMvnCommand = new MavenJarResolver(commandParams);
Label intProgress = new Label(param.getCode().getMessage());
MavenJarResolver.AddMvnCommandResult result = classpathAddMvnCommand.retrieve(split[3], split[4], split[5], intProgress);
MvnLoggerWidget progress = new MvnLoggerWidget(param.getCode().getMessage());
MavenJarResolver.AddMvnCommandResult result = classpathAddMvnCommand.retrieve(split[3], split[4], split[5], progress);
if (result.isJarRetrieved()) {
Collection<String> newAddedJars = addJars(classpathAddMvnCommand.getPathToMavenRepo() + "/*");
if (newAddedJars.isEmpty()) {
Expand All @@ -71,4 +72,26 @@ public MagicCommandOutcomeItem execute(MagicCommandExecutionParam param) {
return new MagicCommandOutput(MagicCommandOutput.Status.ERROR, result.getErrorMessage());
}


public class MvnLoggerWidget {

private Label widget;

public MvnLoggerWidget(Message parentMessage) {
this.widget = new Label(parentMessage);
}

public void sendLog(String text) {
widget.setValue(text);
}

public void display() {
this.widget.display();
}

public void close() {
this.widget.close();
}
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@
import static com.twosigma.beakerx.handler.KernelHandlerWrapper.wrapBusyIdle;
import static com.twosigma.beakerx.kernel.msg.JupyterMessages.DISPLAY_DATA;
import static com.twosigma.beakerx.widgets.CompiledCodeRunner.runCommEvent;

import com.twosigma.beakerx.evaluator.InternalVariable;
import com.twosigma.beakerx.kernel.KernelManager;
import com.twosigma.beakerx.kernel.comm.Comm;
import com.twosigma.beakerx.kernel.comm.TargetNamesEnum;
Expand Down Expand Up @@ -60,9 +62,7 @@ public Widget() {
}

protected void openComm() {
comm.setData(createContent());
addValueChangeMsgCallback();
comm.open();
openComm(InternalVariable.getParentHeader());
}

protected void openComm(Message parentMessage) {
Expand Down

0 comments on commit 4153c90

Please sign in to comment.