org.jacoco.cli.internal.commands.Dump Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of org.jacoco.cli Show documentation
Show all versions of org.jacoco.cli Show documentation
JaCoCo Command Line Interface
/*******************************************************************************
* Copyright (c) 2009, 2018 Mountainminds GmbH & Co. KG and Contributors
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Marc R. Hoffmann - initial API and implementation
*
*******************************************************************************/
package org.jacoco.cli.internal.commands;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.InetAddress;
import org.jacoco.cli.internal.Command;
import org.jacoco.core.runtime.AgentOptions;
import org.jacoco.core.tools.ExecDumpClient;
import org.jacoco.core.tools.ExecFileLoader;
import org.kohsuke.args4j.Option;
/**
* The dump
command.
*/
public class Dump extends Command {
@Option(name = "--address", usage = "host name or ip address to connect to (default localhost)", metaVar = "")
String address = AgentOptions.DEFAULT_ADDRESS;
@Option(name = "--port", usage = "the port to connect to (default 6300)", metaVar = "")
int port = AgentOptions.DEFAULT_PORT;
@Option(name = "--destfile", usage = "file to write execution data to", metaVar = "", required = true)
File destfile;
@Option(name = "--reset", usage = "reset execution data on test target after dump")
boolean reset = false;
@Option(name = "--retry", usage = "number of retries (default 10)", metaVar = "")
int retrycount = 10;
@Override
public String description() {
return "Request execution data from a JaCoCo agent running in 'tcpserver' output mode.";
}
@Override
public int execute(final PrintWriter out, final PrintWriter err)
throws Exception {
final ExecDumpClient client = new ExecDumpClient() {
@Override
protected void onConnecting(final InetAddress address,
final int port) {
out.printf("[INFO] Connecting to %s:%s.%n", address,
Integer.valueOf(port));
}
@Override
protected void onConnectionFailure(final IOException exception) {
err.printf("[WARN] %s.%n", exception.getMessage());
}
};
client.setReset(reset);
client.setRetryCount(retrycount);
final ExecFileLoader loader = client.dump(address, port);
out.printf("[INFO] Writing execution data to %s.%n",
destfile.getAbsolutePath());
loader.save(destfile, true);
return 0;
}
}