aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorColin Cross <ccross@android.com>2018-01-03 20:12:07 +0000
committerandroid-build-merger <android-build-merger@google.com>2018-01-03 20:12:07 +0000
commit206294a6e5b7ea53651b910c848c9b2e6d80c0cd (patch)
treeb78a7f4fad7b2d1b2989bf54e02694287dd4c35f
parentd617066fb6048ef15f47f58a241fa8399845e831 (diff)
parent8e7552aae7305cabda37656801b891f4ff435bf5 (diff)
downloadjacoco-206294a6e5b7ea53651b910c848c9b2e6d80c0cd.tar.gz
Revert "Merge remote-tracking branch 'aosp/upstream-pull-525' into master" am: 37043f9e86
am: 8e7552aae7 Change-Id: I2fcdfd5240ed833c7910b2e4810a9d24b2aa8772
-rw-r--r--README.android2
-rw-r--r--jacoco/assembly.xml8
-rw-r--r--jacoco/pom.xml10
-rw-r--r--org.jacoco.build/pom.xml21
-rw-r--r--org.jacoco.cli.test/.classpath20
-rw-r--r--org.jacoco.cli.test/.project30
-rw-r--r--org.jacoco.cli.test/about.html27
-rw-r--r--org.jacoco.cli.test/pom.xml41
-rw-r--r--org.jacoco.cli.test/src/org/jacoco/cli/internal/CommandTestBase.java73
-rw-r--r--org.jacoco.cli.test/src/org/jacoco/cli/internal/MainTest.java77
-rw-r--r--org.jacoco.cli.test/src/org/jacoco/cli/internal/XmlDocumentationTest.java130
-rw-r--r--org.jacoco.cli.test/src/org/jacoco/cli/internal/commands/ClassInfoTest.java45
-rw-r--r--org.jacoco.cli.test/src/org/jacoco/cli/internal/commands/DumpTest.java131
-rw-r--r--org.jacoco.cli.test/src/org/jacoco/cli/internal/commands/ExecInfoTest.java70
-rw-r--r--org.jacoco.cli.test/src/org/jacoco/cli/internal/commands/InstrumentTest.java132
-rw-r--r--org.jacoco.cli.test/src/org/jacoco/cli/internal/commands/MergeTest.java84
-rw-r--r--org.jacoco.cli.test/src/org/jacoco/cli/internal/commands/ReportTest.java142
-rw-r--r--org.jacoco.cli.test/src/org/jacoco/cli/internal/commands/VersionTest.java31
-rw-r--r--org.jacoco.cli/.classpath20
-rw-r--r--org.jacoco.cli/.project30
-rw-r--r--org.jacoco.cli/about.html27
-rw-r--r--org.jacoco.cli/pom.xml89
-rw-r--r--org.jacoco.cli/src/org/jacoco/cli/internal/Command.java91
-rw-r--r--org.jacoco.cli/src/org/jacoco/cli/internal/CommandHandler.java89
-rw-r--r--org.jacoco.cli/src/org/jacoco/cli/internal/CommandParser.java33
-rw-r--r--org.jacoco.cli/src/org/jacoco/cli/internal/Main.java106
-rw-r--r--org.jacoco.cli/src/org/jacoco/cli/internal/XmlDocumentation.java78
-rw-r--r--org.jacoco.cli/src/org/jacoco/cli/internal/commands/AllCommands.java49
-rw-r--r--org.jacoco.cli/src/org/jacoco/cli/internal/commands/ClassInfo.java71
-rw-r--r--org.jacoco.cli/src/org/jacoco/cli/internal/commands/Dump.java77
-rw-r--r--org.jacoco.cli/src/org/jacoco/cli/internal/commands/ExecInfo.java90
-rw-r--r--org.jacoco.cli/src/org/jacoco/cli/internal/commands/Instrument.java96
-rw-r--r--org.jacoco.cli/src/org/jacoco/cli/internal/commands/Merge.java62
-rw-r--r--org.jacoco.cli/src/org/jacoco/cli/internal/commands/Report.java170
-rw-r--r--org.jacoco.cli/src/org/jacoco/cli/internal/commands/Version.java37
-rw-r--r--org.jacoco.core.test/src/org/jacoco/core/tools/ExecDumpClientTest.java26
-rw-r--r--org.jacoco.core/src/org/jacoco/core/tools/ExecDumpClient.java5
-rw-r--r--org.jacoco.doc/docroot/doc/changes.html2
-rw-r--r--org.jacoco.doc/docroot/doc/index.html1
-rw-r--r--org.jacoco.doc/docroot/doc/integrations.html2
-rw-r--r--org.jacoco.doc/docroot/index.html6
-rw-r--r--org.jacoco.doc/pom.xml39
-rw-r--r--org.jacoco.doc/xsl/cli.xsl113
-rw-r--r--org.jacoco.tests/pom.xml3
44 files changed, 10 insertions, 2476 deletions
diff --git a/README.android b/README.android
index 21adf4d9..cad30c6c 100644
--- a/README.android
+++ b/README.android
@@ -14,5 +14,3 @@ is the list of the changes:
1) Remove the creation of JmxRegistration in org.jacoco.agent.rt.internal.Agent.
2) Change default OutputMode to none in org.jacoco.core.runtime.AgentOptions
-3) Merge https://github.com/jacoco/jacoco/pull/525
-4) Update the build process to match #3: evaluate jacoco.properties, and add MANIFEST.MF
diff --git a/jacoco/assembly.xml b/jacoco/assembly.xml
index 81a39386..b25483f9 100644
--- a/jacoco/assembly.xml
+++ b/jacoco/assembly.xml
@@ -65,14 +65,6 @@
</dependencySet>
<dependencySet>
<outputDirectory>lib</outputDirectory>
- <outputFileNameMapping>jacococli.jar</outputFileNameMapping>
- <useProjectArtifact>false</useProjectArtifact>
- <includes>
- <include>${project.groupId}:org.jacoco.cli:jar:nodeps</include>
- </includes>
- </dependencySet>
- <dependencySet>
- <outputDirectory>lib</outputDirectory>
<outputFileNameMapping>jacocoagent.jar</outputFileNameMapping>
<useProjectArtifact>false</useProjectArtifact>
<includes>
diff --git a/jacoco/pom.xml b/jacoco/pom.xml
index 95e29fd8..5a1875da 100644
--- a/jacoco/pom.xml
+++ b/jacoco/pom.xml
@@ -55,12 +55,6 @@
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
- <artifactId>org.jacoco.cli</artifactId>
- <version>${project.version}</version>
- <classifier>nodeps</classifier>
- </dependency>
- <dependency>
- <groupId>${project.groupId}</groupId>
<artifactId>org.jacoco.examples</artifactId>
<version>${project.version}</version>
<type>zip</type>
@@ -110,8 +104,8 @@
<configuration>
<rules>
<requireFilesSize>
- <maxsize>4100000</maxsize>
- <minsize>3400000</minsize>
+ <maxsize>3500000</maxsize>
+ <minsize>2500000</minsize>
<files>
<file>${project.build.directory}/jacoco-${qualified.bundle.version}.zip</file>
</files>
diff --git a/org.jacoco.build/pom.xml b/org.jacoco.build/pom.xml
index 17e18437..e746d6ac 100644
--- a/org.jacoco.build/pom.xml
+++ b/org.jacoco.build/pom.xml
@@ -94,12 +94,12 @@
<module>../org.jacoco.agent.rt</module>
<module>../org.jacoco.agent</module>
<module>../org.jacoco.ant</module>
- <module>../org.jacoco.cli</module>
- <module>../org.jacoco.examples</module>
+
<module>../jacoco-maven-plugin</module>
<module>../org.jacoco.tests</module>
+ <module>../org.jacoco.examples</module>
<module>../org.jacoco.doc</module>
<module>../jacoco</module>
</modules>
@@ -143,7 +143,6 @@
<!-- Dependencies versions -->
<asm.version>5.2</asm.version>
<ant.version>1.7.1</ant.version>
- <args4j.version>2.0.28</args4j.version>
<junit.version>4.8.2</junit.version>
<!-- ================== -->
@@ -199,11 +198,6 @@
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
- <artifactId>org.jacoco.cli</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>${project.groupId}</groupId>
<artifactId>org.jacoco.examples</artifactId>
<version>${project.version}</version>
</dependency>
@@ -229,11 +223,6 @@
<version>1.2</version>
</dependency>
<dependency>
- <groupId>args4j</groupId>
- <artifactId>args4j</artifactId>
- <version>${args4j.version}</version>
- </dependency>
- <dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
@@ -405,12 +394,6 @@
<artifactId>xml-maven-plugin</artifactId>
<version>1.0</version>
</plugin>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>exec-maven-plugin</artifactId>
- <!-- latest version which runs with Java 5 -->
- <version>1.5.0</version>
- </plugin>
<!-- Third-party plugins -->
<plugin>
<groupId>org.codehaus.groovy.maven</groupId>
diff --git a/org.jacoco.cli.test/.classpath b/org.jacoco.cli.test/.classpath
deleted file mode 100644
index 0ed344a5..00000000
--- a/org.jacoco.cli.test/.classpath
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5">
- <attributes>
- <attribute name="maven.pomderived" value="true"/>
- </attributes>
- </classpathentry>
- <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
- <attributes>
- <attribute name="maven.pomderived" value="true"/>
- </attributes>
- </classpathentry>
- <classpathentry including="**/*.java" kind="src" output="target/classes" path="src">
- <attributes>
- <attribute name="optional" value="true"/>
- <attribute name="maven.pomderived" value="true"/>
- </attributes>
- </classpathentry>
- <classpathentry kind="output" path="target/classes"/>
-</classpath>
diff --git a/org.jacoco.cli.test/.project b/org.jacoco.cli.test/.project
deleted file mode 100644
index fbd366b0..00000000
--- a/org.jacoco.cli.test/.project
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.jacoco.cli.test</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.m2e.core.maven2Builder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.m2e.core.maven2Nature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- </natures>
- <linkedResources>
- <link>
- <name>.settings</name>
- <type>2</type>
- <locationURI>PARENT-1-PROJECT_LOC/org.jacoco.core.test/.settings</locationURI>
- </link>
- </linkedResources>
-</projectDescription>
diff --git a/org.jacoco.cli.test/about.html b/org.jacoco.cli.test/about.html
deleted file mode 100644
index d31112db..00000000
--- a/org.jacoco.cli.test/about.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>
- @build.date@
-</p>
-
-<h3>License</h3>
-
-<p>
- All Content in this plug-in is made available by Mountainminds GmbH &amp; Co.
- KG, Munich. Unless otherwise indicated below, the Content is provided to you
- under the terms and conditions of the Eclipse Public License Version 1.0
- (&quot;EPL&quot;). A copy of the EPL is available at
- <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
- For purposes of the EPL, "Program" will mean the Content.
-</p>
-
-</body>
-</html> \ No newline at end of file
diff --git a/org.jacoco.cli.test/pom.xml b/org.jacoco.cli.test/pom.xml
deleted file mode 100644
index bc3c6b7d..00000000
--- a/org.jacoco.cli.test/pom.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (c) 2009, 2017 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:
- Evgeny Mandrikov - initial API and implementation
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
-
- <parent>
- <groupId>org.jacoco</groupId>
- <artifactId>org.jacoco.tests</artifactId>
- <version>0.7.10-SNAPSHOT</version>
- <relativePath>../org.jacoco.tests</relativePath>
- </parent>
-
- <artifactId>org.jacoco.cli.test</artifactId>
-
- <name>JaCoCo :: Test :: Command Line Interface</name>
-
- <properties>
- <jacoco.includes>org.jacoco.cli.*</jacoco.includes>
- </properties>
-
- <dependencies>
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>org.jacoco.cli</artifactId>
- </dependency>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- </dependency>
- </dependencies>
-
-</project>
diff --git a/org.jacoco.cli.test/src/org/jacoco/cli/internal/CommandTestBase.java b/org.jacoco.cli.test/src/org/jacoco/cli/internal/CommandTestBase.java
deleted file mode 100644
index 4d12a373..00000000
--- a/org.jacoco.cli.test/src/org/jacoco/cli/internal/CommandTestBase.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2017 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;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.io.UnsupportedEncodingException;
-import java.net.URLDecoder;
-
-import org.junit.Before;
-
-/**
- * Base class for command tests.
- */
-public abstract class CommandTestBase {
-
- protected StringWriter out;
- protected StringWriter err;
- protected int result;
-
- @Before
- public void before() {
- out = new StringWriter();
- err = new StringWriter();
- }
-
- protected int execute(String... args) throws Exception {
- result = new Main(args).execute(new PrintWriter(out),
- new PrintWriter(err));
- return result;
- }
-
- protected void assertOk() {
- assertEquals(err.toString(), 0, result);
- }
-
- protected void assertFailure() {
- assertEquals(-1, result);
- }
-
- protected void assertNoOutput(StringWriter buffer) {
- assertEquals("", buffer.toString());
- }
-
- protected void assertContains(String expected, StringWriter buffer) {
- final String content = buffer.toString();
- assertTrue(content, content.contains(expected));
- }
-
- protected String getClassPath() {
- final String name = getClass().getName();
- final String res = "/" + name.replace('.', '/') + ".class";
- String loc = getClass().getResource(res).getFile();
- try {
- loc = URLDecoder.decode(loc, "UTF-8");
- } catch (UnsupportedEncodingException e) {
- }
- return loc.substring(0, loc.length() - res.length());
- }
-
-}
diff --git a/org.jacoco.cli.test/src/org/jacoco/cli/internal/MainTest.java b/org.jacoco.cli.test/src/org/jacoco/cli/internal/MainTest.java
deleted file mode 100644
index b60780c2..00000000
--- a/org.jacoco.cli.test/src/org/jacoco/cli/internal/MainTest.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2017 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;
-
-import org.junit.Test;
-
-/**
- * Unit tests for {@link Main}.
- */
-public class MainTest extends CommandTestBase {
-
- @Test
- public void should_print_usage_when_no_arguments_given() throws Exception {
- execute();
-
- assertFailure();
- assertNoOutput(out);
- assertContains("Argument \"<command>\" is required", err);
- assertContains("Usage: java -jar jacococli.jar -help | <command>", err);
- assertContains("Command line interface for JaCoCo.", err);
- }
-
- @Test
- public void should_print_error_message_when_invalid_command_is_given()
- throws Exception {
- execute("foo");
-
- assertFailure();
- assertNoOutput(out);
- assertContains("\"foo\" is not a valid value for \"<command>\"", err);
- assertContains("Usage: java -jar jacococli.jar -help | <command>", err);
- }
-
- @Test
- public void should_print_general_usage_when_help_option_is_given()
- throws Exception {
- execute("-help");
-
- assertOk();
- assertNoOutput(err);
- assertContains("Usage: java -jar jacococli.jar -help | <command>", out);
- assertContains("<command> : dump|instrument|merge|report", out);
- }
-
- @Test
- public void should_print_command_usage_when_command_and_help_option_is_given()
- throws Exception {
- execute("dump", "-help");
-
- assertOk();
- assertNoOutput(err);
- assertContains("Usage: java -jar jacococli.jar dump", out);
- assertContains(
- "Request execution data from a JaCoCo agent running in 'tcpserver' output mode.",
- out);
- }
-
- @Test
- public void should_not_print_any_output_when_quiet_option_is_given()
- throws Exception {
- execute("version", "-quiet");
-
- assertOk();
- assertNoOutput(out);
- assertNoOutput(err);
- }
-
-}
diff --git a/org.jacoco.cli.test/src/org/jacoco/cli/internal/XmlDocumentationTest.java b/org.jacoco.cli.test/src/org/jacoco/cli/internal/XmlDocumentationTest.java
deleted file mode 100644
index 83f79bc9..00000000
--- a/org.jacoco.cli.test/src/org/jacoco/cli/internal/XmlDocumentationTest.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2017 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;
-
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStream;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.xpath.XPath;
-import javax.xml.xpath.XPathConstants;
-import javax.xml.xpath.XPathExpressionException;
-import javax.xml.xpath.XPathFactory;
-
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.TemporaryFolder;
-import org.w3c.dom.Document;
-import org.xml.sax.ErrorHandler;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-
-/**
- * Unit tests for {@link XmlDocumentation}.
- */
-public class XmlDocumentationTest {
-
- @Rule
- public TemporaryFolder tmp = new TemporaryFolder();
-
- private DocumentBuilder builder;
- private XPath xpath;
-
- @Before
- public void before() throws Exception {
- final DocumentBuilderFactory builderFactory = DocumentBuilderFactory
- .newInstance();
- builder = builderFactory.newDocumentBuilder();
- builder.setErrorHandler(new ErrorHandler() {
- public void error(SAXParseException exception) throws SAXException {
- fail(exception.getMessage());
- }
-
- public void fatalError(SAXParseException exception)
- throws SAXException {
- fail(exception.getMessage());
- }
-
- public void warning(SAXParseException exception)
- throws SAXException {
- fail(exception.getMessage());
- }
- });
-
- xpath = XPathFactory.newInstance().newXPath();
- }
-
- @Test
- public void should_create_documentation() throws Exception {
- File file = new File(tmp.getRoot(), "doc.xml");
-
- XmlDocumentation.main(file.getAbsolutePath());
-
- Document doc = parse(file);
-
- assertContains("java -jar jacococli.jar report",
- "/documentation/command[@name='report']/usage/text()", doc);
-
- assertContains("Generate reports",
- "/documentation/command[@name='report']/description/text()",
- doc);
-
- assertContains("<execfiles>",
- "/documentation/command[@name='report']/option[1]/usage/text()",
- doc);
-
- assertContains("false",
- "/documentation/command[@name='report']/option[1]/@required",
- doc);
-
- assertContains("true",
- "/documentation/command[@name='report']/option[1]/@multiple",
- doc);
-
- assertContains("-classfiles <path>",
- "/documentation/command[@name='report']/option[2]/usage/text()",
- doc);
-
- assertContains("true",
- "/documentation/command[@name='report']/option[2]/@multiple",
- doc);
-
- }
-
- private Document parse(File file) throws Exception {
- InputStream in = new FileInputStream(file);
- try {
- return builder.parse(new InputSource(in));
- } finally {
- in.close();
- }
- }
-
- private void assertContains(String expected, String query, Document doc)
- throws XPathExpressionException {
- final String actual = eval(query, doc);
- assertTrue(actual, actual.contains(expected));
- }
-
- private String eval(String query, Document doc)
- throws XPathExpressionException {
- return (String) xpath.evaluate(query, doc, XPathConstants.STRING);
- }
-
-}
diff --git a/org.jacoco.cli.test/src/org/jacoco/cli/internal/commands/ClassInfoTest.java b/org.jacoco.cli.test/src/org/jacoco/cli/internal/commands/ClassInfoTest.java
deleted file mode 100644
index 802be964..00000000
--- a/org.jacoco.cli.test/src/org/jacoco/cli/internal/commands/ClassInfoTest.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2017 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 org.jacoco.cli.internal.CommandTestBase;
-import org.junit.Test;
-
-/**
- * Unit tests for {@link ClassInfo}.
- */
-public class ClassInfoTest extends CommandTestBase {
-
- @Test
- public void should_print_usage_when_invalid_option_is_given()
- throws Exception {
- execute("classinfo", "-invalid");
-
- assertFailure();
- assertContains("\"-invalid\" is not a valid option", err);
- assertContains(
- "java -jar jacococli.jar classinfo [<classlocations> ...]",
- err);
- }
-
- @Test
- public void should_print_class_info() throws Exception {
- execute("classinfo", getClassPath());
-
- assertOk();
- assertContains(
- "class name: org/jacoco/cli/internal/commands/ClassInfoTest",
- out);
- assertContains("methods: 3", out);
- }
-
-}
diff --git a/org.jacoco.cli.test/src/org/jacoco/cli/internal/commands/DumpTest.java b/org.jacoco.cli.test/src/org/jacoco/cli/internal/commands/DumpTest.java
deleted file mode 100644
index 62e7dc44..00000000
--- a/org.jacoco.cli.test/src/org/jacoco/cli/internal/commands/DumpTest.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2017 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 static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.InetAddress;
-import java.net.ServerSocket;
-import java.net.Socket;
-
-import org.jacoco.cli.internal.CommandTestBase;
-import org.jacoco.core.runtime.IRemoteCommandVisitor;
-import org.jacoco.core.runtime.RemoteControlReader;
-import org.jacoco.core.runtime.RemoteControlWriter;
-import org.junit.After;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.TemporaryFolder;
-
-/**
- * Unit tests for {@link Dump}.
- */
-public class DumpTest extends CommandTestBase {
-
- @Rule
- public TemporaryFolder tmp = new TemporaryFolder();
-
- private ServerSocket serverSocket;
-
- @After
- public void after() throws IOException {
- if (serverSocket != null) {
- serverSocket.close();
- }
- }
-
- @Test
- public void should_print_usage_when_no_argument_is_given()
- throws Exception {
- execute("dump");
- assertFailure();
- assertContains("Option \"-destfile\" is required", err);
- assertContains("java -jar jacococli.jar dump [-address <address>]",
- err);
- }
-
- @Test
- public void should_write_dump() throws Exception {
-
- File execfile = new File(tmp.getRoot(), "jacoco.exec");
- int port = startMockServer();
-
- execute("dump", "-destfile", execfile.getAbsolutePath(), "-port",
- String.valueOf(port));
-
- assertOk();
- assertContains("[INFO] Connecting to ", out);
- assertContains("[INFO] Writing execution data to "
- + execfile.getAbsolutePath(), out);
- assertTrue(execfile.exists());
- }
-
- @Test
- public void should_log_connection_error_when_retry_is_specified()
- throws Exception {
-
- File execfile = new File(tmp.getRoot(), "jacoco.exec");
- int port = unusedPort();
-
- try {
- execute("dump", "-destfile", execfile.getAbsolutePath(), "-port",
- String.valueOf(port), "-retry", "1");
- fail("IOException expected");
- } catch (IOException ignore) {
- }
-
- assertContains("[WARN] Connection refused", err);
- }
-
- private int startMockServer() throws IOException {
- serverSocket = new ServerSocket(0, 0, InetAddress.getByName(null));
- new Thread() {
- @Override
- public void run() {
- try {
- serveRequest(serverSocket.accept());
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- }
- }.start();
- return serverSocket.getLocalPort();
- }
-
- private void serveRequest(Socket socket) throws IOException {
- final RemoteControlWriter writer = new RemoteControlWriter(
- socket.getOutputStream());
- final RemoteControlReader reader = new RemoteControlReader(
- socket.getInputStream());
- reader.setRemoteCommandVisitor(new IRemoteCommandVisitor() {
-
- public void visitDumpCommand(boolean dump, boolean reset)
- throws IOException {
- writer.sendCmdOk();
- }
- });
- while (reader.read()) {
- }
- }
-
- private int unusedPort() throws IOException {
- final ServerSocket serverSocket = new ServerSocket(0, 0,
- InetAddress.getByName(null));
- final int port = serverSocket.getLocalPort();
- serverSocket.close();
- return port;
- }
-
-}
diff --git a/org.jacoco.cli.test/src/org/jacoco/cli/internal/commands/ExecInfoTest.java b/org.jacoco.cli.test/src/org/jacoco/cli/internal/commands/ExecInfoTest.java
deleted file mode 100644
index fdf1fd43..00000000
--- a/org.jacoco.cli.test/src/org/jacoco/cli/internal/commands/ExecInfoTest.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2017 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.FileOutputStream;
-import java.io.IOException;
-
-import org.jacoco.cli.internal.CommandTestBase;
-import org.jacoco.core.data.ExecutionData;
-import org.jacoco.core.data.ExecutionDataWriter;
-import org.jacoco.core.data.SessionInfo;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.TemporaryFolder;
-
-/**
- * Unit tests for {@link ExecInfo}.
- */
-public class ExecInfoTest extends CommandTestBase {
-
- @Rule
- public TemporaryFolder tmp = new TemporaryFolder();
-
- @Test
- public void should_print_usage_when_invalid_argument_is_given()
- throws Exception {
- execute("execinfo", "-invalid");
-
- assertFailure();
- assertContains("\"-invalid\" is not a valid option", err);
- assertContains("java -jar jacococli.jar execinfo [<execfiles> ...]",
- err);
- }
-
- @Test
- public void should_print_execution_data_info() throws Exception {
- File execfile = createExecFile();
-
- execute("execinfo", execfile.getAbsolutePath());
-
- assertOk();
- assertContains("[INFO] Loading exec file " + execfile.getAbsolutePath(),
- out);
- assertContains("CLASS ID HITS/PROBES CLASS NAME", out);
- assertContains("Session \"testid\":", out);
- assertContains("0000000000001234 2 of 3 foo/MyClass", out);
- }
-
- private File createExecFile() throws IOException {
- File f = new File(tmp.getRoot(), "test.exec");
- final FileOutputStream out = new FileOutputStream(f);
- final ExecutionDataWriter writer = new ExecutionDataWriter(out);
- writer.visitSessionInfo(new SessionInfo("testid", 1, 2));
- writer.visitClassExecution(new ExecutionData(0x1234, "foo/MyClass",
- new boolean[] { false, true, true }));
- out.close();
- return f;
- }
-
-}
diff --git a/org.jacoco.cli.test/src/org/jacoco/cli/internal/commands/InstrumentTest.java b/org.jacoco.cli.test/src/org/jacoco/cli/internal/commands/InstrumentTest.java
deleted file mode 100644
index 6b9d5039..00000000
--- a/org.jacoco.cli.test/src/org/jacoco/cli/internal/commands/InstrumentTest.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2017 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 static org.junit.Assert.assertArrayEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.jacoco.cli.internal.CommandTestBase;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.TemporaryFolder;
-import org.objectweb.asm.ClassReader;
-import org.objectweb.asm.ClassVisitor;
-import org.objectweb.asm.FieldVisitor;
-import org.objectweb.asm.Opcodes;
-
-/**
- * Unit tests for {@link Instrument}.
- */
-public class InstrumentTest extends CommandTestBase {
-
- @Rule
- public TemporaryFolder tmp = new TemporaryFolder();
-
- @Test
- public void should_print_usage_when_no_options_are_given()
- throws Exception {
- execute("instrument");
- assertFailure();
- assertContains("Option \"-dest\" is required", err);
- assertContains(
- "Usage: java -jar jacococli.jar instrument [<sourcefiles> ...]",
- err);
- }
-
- @Test
- public void should_instrument_class_files_and_copy_resources()
- throws Exception {
- File destdir = tmp.getRoot();
-
- execute("instrument", "-dest", destdir.getAbsolutePath(),
- getClassPath());
-
- assertOk();
- assertContains("[INFO] 14 classes instrumented to "
- + destdir.getAbsolutePath(), out);
-
- // non class-file resources are copied:
- assertTrue(new File(destdir, "about.html").isFile());
-
- assertInstrumented(new File(destdir,
- "org/jacoco/cli/internal/commands/InstrumentTest.class"));
- }
-
- @Test
- public void should_not_instrument_anything_when_no_source_is_given()
- throws Exception {
- File destdir = tmp.getRoot();
-
- execute("instrument", "-dest", destdir.getAbsolutePath());
-
- assertOk();
- assertArrayEquals(new String[0], destdir.list());
- }
-
- @Test
- public void should_not_create_dest_file_when_source_class_is_broken()
- throws Exception {
- File srcdir = new File(tmp.getRoot(), "src");
- srcdir.mkdir();
- File destdir = new File(tmp.getRoot(), "dest");
- destdir.mkdir();
-
- OutputStream out = new FileOutputStream(
- new File(srcdir, "Broken.class"));
- out.write((byte) 0xca);
- out.write((byte) 0xfe);
- out.write((byte) 0xba);
- out.write((byte) 0xbe);
- out.write((byte) 0x00);
- out.write((byte) 0x00);
- out.write((byte) 0x00);
- out.write((byte) 50);
- out.close();
-
- try {
- execute("instrument", "-dest", destdir.getAbsolutePath(),
- srcdir.getAbsolutePath());
- fail("exception expected");
- } catch (IOException expected) {
- }
-
- assertFalse(new File(destdir, "Broken.class").exists());
- }
-
- private void assertInstrumented(File classfile) throws IOException {
- InputStream in = new FileInputStream(classfile);
- ClassReader reader = new ClassReader(in);
- in.close();
- final Set<String> fields = new HashSet<String>();
- reader.accept(new ClassVisitor(Opcodes.ASM5) {
- @Override
- public FieldVisitor visitField(int access, String name, String desc,
- String signature, Object value) {
- fields.add(name);
- return null;
- }
- }, 0);
- assertTrue(fields.contains("$jacocoData"));
- }
-
-}
diff --git a/org.jacoco.cli.test/src/org/jacoco/cli/internal/commands/MergeTest.java b/org.jacoco.cli.test/src/org/jacoco/cli/internal/commands/MergeTest.java
deleted file mode 100644
index f9132d91..00000000
--- a/org.jacoco.cli.test/src/org/jacoco/cli/internal/commands/MergeTest.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2017 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 static org.junit.Assert.assertEquals;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.jacoco.cli.internal.CommandTestBase;
-import org.jacoco.core.data.ExecutionData;
-import org.jacoco.core.data.ExecutionDataWriter;
-import org.jacoco.core.tools.ExecFileLoader;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.TemporaryFolder;
-
-/**
- * Unit tests for {@link Merge}.
- */
-public class MergeTest extends CommandTestBase {
-
- @Rule
- public TemporaryFolder tmp = new TemporaryFolder();
-
- @Test
- public void should_print_usage_when_no_options_are_given()
- throws Exception {
- execute("merge");
-
- assertFailure();
- assertContains("Option \"-destfile\" is required", err);
- assertContains("java -jar jacococli.jar merge [<execfiles> ...]", err);
- }
-
- @Test
- public void should_merge_exec_files() throws Exception {
- File a = createExecFile("a");
- File b = createExecFile("b");
- File c = createExecFile("c");
- File dest = new File(tmp.getRoot(), "merged.exec");
-
- execute("merge", "-destfile", dest.getAbsolutePath(),
- a.getAbsolutePath(), b.getAbsolutePath(), c.getAbsolutePath());
-
- assertOk();
- Set<String> names = loadExecFile(dest);
- assertEquals(new HashSet<String>(Arrays.asList("a", "b", "c")), names);
- }
-
- private File createExecFile(String name) throws IOException {
- File file = new File(tmp.getRoot(), name + ".exec");
- final FileOutputStream execout = new FileOutputStream(file);
- ExecutionDataWriter writer = new ExecutionDataWriter(execout);
- writer.visitClassExecution(new ExecutionData(name.hashCode(), name,
- new boolean[] { true }));
- execout.close();
- return file;
- }
-
- private Set<String> loadExecFile(File file) throws IOException {
- ExecFileLoader loader = new ExecFileLoader();
- loader.load(file);
- Set<String> names = new HashSet<String>();
- for (ExecutionData d : loader.getExecutionDataStore().getContents()) {
- names.add(d.getName());
- }
- return names;
- }
-
-}
diff --git a/org.jacoco.cli.test/src/org/jacoco/cli/internal/commands/ReportTest.java b/org.jacoco.cli.test/src/org/jacoco/cli/internal/commands/ReportTest.java
deleted file mode 100644
index e5385ee5..00000000
--- a/org.jacoco.cli.test/src/org/jacoco/cli/internal/commands/ReportTest.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2017 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 static org.junit.Assert.assertTrue;
-
-import java.io.File;
-import java.io.FileOutputStream;
-
-import org.jacoco.cli.internal.CommandTestBase;
-import org.jacoco.core.data.ExecutionData;
-import org.jacoco.core.data.ExecutionDataWriter;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.TemporaryFolder;
-
-/**
- * Unit tests for {@link Report}.
- */
-public class ReportTest extends CommandTestBase {
-
- @Rule
- public TemporaryFolder tmp = new TemporaryFolder();
-
- @Test
- public void should_print_usage_when_no_options_are_given()
- throws Exception {
- execute("report");
-
- assertFailure();
- assertContains("Option \"-classfiles\" is required", err);
- assertContains(
- "Usage: java -jar jacococli.jar report [<execfiles> ...]", err);
- }
-
- @Test
- public void should_print_number_of_analyzed_classes() throws Exception {
- execute("report", "-classfiles", getClassPath());
-
- assertOk();
- assertContains("[INFO] Writing report with 14 classes.", out);
- }
-
- @Test
- public void should_print_warning_when_exec_data_does_not_match()
- throws Exception {
- File exec = new File(tmp.getRoot(), "jacoco.exec");
- final FileOutputStream execout = new FileOutputStream(exec);
- ExecutionDataWriter writer = new ExecutionDataWriter(execout);
- // Add probably invalid id for this test class:
- writer.visitClassExecution(
- new ExecutionData(0x123, getClass().getName().replace('.', '/'),
- new boolean[] { true }));
- execout.close();
-
- execute("report", exec.getAbsolutePath(), "-classfiles",
- getClassPath());
-
- assertOk();
- assertContains("[WARN] Some classes do not match with execution data.",
- out);
- assertContains(
- "[WARN] For report generation the same class files must be used as at runtime.",
- out);
- assertContains(
- "[WARN] Execution data for class org/jacoco/cli/internal/commands/ReportTest does not match.",
- out);
- }
-
- @Test
- public void should_create_xml_report_when_xml_option_is_provided()
- throws Exception {
- File xml = new File(tmp.getRoot(), "coverage.xml");
-
- execute("report", "-classfiles", getClassPath(), "-xml",
- xml.getAbsolutePath());
-
- assertOk();
- assertTrue(xml.isFile());
- }
-
- @Test
- public void should_create_csv_report_when_csv_option_is_provided()
- throws Exception {
- File csv = new File(tmp.getRoot(), "coverage.csv");
-
- execute("report", "-classfiles", getClassPath(), "-csv",
- csv.getAbsolutePath());
-
- assertOk();
- assertTrue(csv.isFile());
- }
-
- @Test
- public void should_create_html_report_when_html_option_is_provided()
- throws Exception {
- File html = new File(tmp.getRoot(), "coverage");
-
- execute("report", "-classfiles", getClassPath(), "-sourcefiles",
- "./src", "-html", html.getAbsolutePath());
-
- assertOk();
- assertTrue(html.isDirectory());
- assertTrue(new File(html,
- "org.jacoco.cli.internal.commands/ReportTest.html").isFile());
- assertTrue(new File(html,
- "org.jacoco.cli.internal.commands/ReportTest.java.html")
- .isFile());
- }
-
- @Test
- public void should_use_all_values_when_multiple_classfiles_options_are_provided()
- throws Exception {
- File html = new File(tmp.getRoot(), "coverage");
-
- final String c1 = getClassPath()
- + "/org/jacoco/cli/internal/commands/ReportTest.class";
- final String c2 = getClassPath()
- + "/org/jacoco/cli/internal/commands/DumpTest.class";
-
- execute("report", "-classfiles", c1, "-classfiles", c2, "-html",
- html.getAbsolutePath());
-
- assertOk();
- assertTrue(html.isDirectory());
- assertTrue(new File(html,
- "org.jacoco.cli.internal.commands/ReportTest.html").isFile());
- assertTrue(
- new File(html, "org.jacoco.cli.internal.commands/DumpTest.html")
- .isFile());
- }
-
-}
diff --git a/org.jacoco.cli.test/src/org/jacoco/cli/internal/commands/VersionTest.java b/org.jacoco.cli.test/src/org/jacoco/cli/internal/commands/VersionTest.java
deleted file mode 100644
index 56b259a5..00000000
--- a/org.jacoco.cli.test/src/org/jacoco/cli/internal/commands/VersionTest.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2017 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 org.jacoco.cli.internal.CommandTestBase;
-import org.jacoco.core.JaCoCo;
-import org.junit.Test;
-
-/**
- * Unit tests for {@link Version}.
- */
-public class VersionTest extends CommandTestBase {
-
- @Test
- public void should_print_version() throws Exception {
- execute("version");
-
- assertOk();
- assertContains(JaCoCo.VERSION, out);
- }
-
-}
diff --git a/org.jacoco.cli/.classpath b/org.jacoco.cli/.classpath
deleted file mode 100644
index 0ed344a5..00000000
--- a/org.jacoco.cli/.classpath
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5">
- <attributes>
- <attribute name="maven.pomderived" value="true"/>
- </attributes>
- </classpathentry>
- <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
- <attributes>
- <attribute name="maven.pomderived" value="true"/>
- </attributes>
- </classpathentry>
- <classpathentry including="**/*.java" kind="src" output="target/classes" path="src">
- <attributes>
- <attribute name="optional" value="true"/>
- <attribute name="maven.pomderived" value="true"/>
- </attributes>
- </classpathentry>
- <classpathentry kind="output" path="target/classes"/>
-</classpath>
diff --git a/org.jacoco.cli/.project b/org.jacoco.cli/.project
deleted file mode 100644
index 828621af..00000000
--- a/org.jacoco.cli/.project
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.jacoco.cli</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.m2e.core.maven2Builder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.m2e.core.maven2Nature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- </natures>
- <linkedResources>
- <link>
- <name>.settings</name>
- <type>2</type>
- <locationURI>PARENT-1-PROJECT_LOC/org.jacoco.core/.settings</locationURI>
- </link>
- </linkedResources>
-</projectDescription>
diff --git a/org.jacoco.cli/about.html b/org.jacoco.cli/about.html
deleted file mode 100644
index d31112db..00000000
--- a/org.jacoco.cli/about.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>
- @build.date@
-</p>
-
-<h3>License</h3>
-
-<p>
- All Content in this plug-in is made available by Mountainminds GmbH &amp; Co.
- KG, Munich. Unless otherwise indicated below, the Content is provided to you
- under the terms and conditions of the Eclipse Public License Version 1.0
- (&quot;EPL&quot;). A copy of the EPL is available at
- <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
- For purposes of the EPL, "Program" will mean the Content.
-</p>
-
-</body>
-</html> \ No newline at end of file
diff --git a/org.jacoco.cli/pom.xml b/org.jacoco.cli/pom.xml
deleted file mode 100644
index 553472e0..00000000
--- a/org.jacoco.cli/pom.xml
+++ /dev/null
@@ -1,89 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (c) 2009, 2017 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
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
-
- <parent>
- <groupId>org.jacoco</groupId>
- <artifactId>org.jacoco.build</artifactId>
- <version>0.7.10-SNAPSHOT</version>
- <relativePath>../org.jacoco.build</relativePath>
- </parent>
-
- <artifactId>org.jacoco.cli</artifactId>
-
- <name>JaCoCo :: Command Line Interface</name>
- <description>JaCoCo Command Line Interface</description>
-
- <dependencies>
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>org.jacoco.core</artifactId>
- </dependency>
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>org.jacoco.report</artifactId>
- </dependency>
- <dependency>
- <groupId>args4j</groupId>
- <artifactId>args4j</artifactId>
- </dependency>
- </dependencies>
-
- <build>
- <sourceDirectory>src</sourceDirectory>
- <plugins>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>exec-maven-plugin</artifactId>
- <executions>
- <execution>
- <phase>package</phase>
- <goals>
- <goal>java</goal>
- </goals>
- <configuration>
- <mainClass>org.jacoco.cli.internal.XmlDocumentation</mainClass>
- <arguments>
- <argument>${project.build.directory}/generated-documentation/cli.xml</argument>
- </arguments>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-shade-plugin</artifactId>
- <executions>
- <execution>
- <phase>package</phase>
- <goals>
- <goal>shade</goal>
- </goals>
- <configuration>
- <shadedArtifactAttached>true</shadedArtifactAttached>
- <shadedClassifierName>nodeps</shadedClassifierName>
- <minimizeJar>true</minimizeJar>
- <transformers>
- <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
- <manifestEntries>
- <Main-Class>org.jacoco.cli.internal.Main</Main-Class>
- </manifestEntries>
- </transformer>
- </transformers>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
-</project>
diff --git a/org.jacoco.cli/src/org/jacoco/cli/internal/Command.java b/org.jacoco.cli/src/org/jacoco/cli/internal/Command.java
deleted file mode 100644
index 06a6cea0..00000000
--- a/org.jacoco.cli/src/org/jacoco/cli/internal/Command.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2017 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;
-
-import java.io.PrintWriter;
-import java.io.StringWriter;
-
-import org.kohsuke.args4j.Option;
-
-/**
- * Common interface for all commands.
- */
-public abstract class Command {
-
- /**
- * Common command line prefix.
- */
- public static final String JAVACMD = "java -jar jacococli.jar ";
-
- /**
- * Flag whether help should be printed for this command.
- */
- @Option(name = "-help", usage = "show help", help = true)
- public boolean help = false;
-
- /**
- * Flag whether output to stdout should be suppressed.
- */
- @Option(name = "-quiet", usage = "suppress all output on stdout")
- public boolean quiet = false;
-
- /**
- * @return Short description of the command.
- */
- public abstract String description();
-
- /**
- * @return name of the command
- */
- public String name() {
- return getClass().getSimpleName().toLowerCase();
- }
-
- /**
- * @param parser
- * parser for this command
- * @return usage string displayed for help
- */
- public String usage(final CommandParser parser) {
- final StringWriter writer = new StringWriter();
- parser.printSingleLineUsage(writer, null);
- return JAVACMD + name() + writer;
- }
-
- /**
- * Executes the given command.
- *
- * @param out
- * std out
- * @param err
- * std err
- * @return exit code, should be 0 for normal operation
- * @throws Exception
- * any exception that my occur during execution
- */
- public abstract int execute(PrintWriter out, PrintWriter err)
- throws Exception;
-
- /**
- * Prints textual help for this command.
- *
- * @param writer
- * output destination
- */
- protected void printHelp(final PrintWriter writer) {
- final CommandParser parser = new CommandParser(this);
- writer.println("Usage: " + parser.getCommand().usage(parser));
- writer.println(description());
- parser.printUsage(writer, null);
- }
-
-}
diff --git a/org.jacoco.cli/src/org/jacoco/cli/internal/CommandHandler.java b/org.jacoco.cli/src/org/jacoco/cli/internal/CommandHandler.java
deleted file mode 100644
index 3c6a2a54..00000000
--- a/org.jacoco.cli/src/org/jacoco/cli/internal/CommandHandler.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2017 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;
-
-import java.util.AbstractList;
-
-import org.jacoco.cli.internal.commands.AllCommands;
-import org.kohsuke.args4j.CmdLineException;
-import org.kohsuke.args4j.CmdLineParser;
-import org.kohsuke.args4j.OptionDef;
-import org.kohsuke.args4j.spi.Messages;
-import org.kohsuke.args4j.spi.OptionHandler;
-import org.kohsuke.args4j.spi.Parameters;
-import org.kohsuke.args4j.spi.Setter;
-
-/**
- * {@link OptionHandler} which uses {@link CommandParser} internally to provide
- * help context also for sub-commands.
- */
-public class CommandHandler extends OptionHandler<Command> {
-
- /**
- * This constructor is required by the args4j framework.
- *
- * @param parser
- * @param option
- * @param setter
- */
- public CommandHandler(final CmdLineParser parser, final OptionDef option,
- final Setter<Object> setter) {
- super(parser,
- new OptionDef(AllCommands.names(), "<command>",
- option.required(), option.help(), option.hidden(),
- CommandHandler.class, option.isMultiValued()) {
- }, setter);
- }
-
- @Override
- public int parseArguments(final Parameters params) throws CmdLineException {
- final String subCmd = params.getParameter(0);
-
- for (final Command c : AllCommands.get()) {
- if (c.name().equals(subCmd)) {
- parseSubArguments(c, params);
- setter.addValue(c);
- return params.size(); // consume all the remaining tokens
- }
- }
-
- throw new CmdLineException(owner,
- Messages.ILLEGAL_OPERAND.format(option.toString(), subCmd));
- }
-
- private void parseSubArguments(final Command c, final Parameters params)
- throws CmdLineException {
- final CmdLineParser p = new CommandParser(c);
- p.parseArgument(new AbstractList<String>() {
- @Override
- public String get(final int index) {
- try {
- return params.getParameter(index + 1);
- } catch (final CmdLineException e) {
- // invalid index was accessed.
- throw new IndexOutOfBoundsException();
- }
- }
-
- @Override
- public int size() {
- return params.size() - 1;
- }
- });
- }
-
- @Override
- public String getDefaultMetaVariable() {
- return "<command>";
- }
-
-}
diff --git a/org.jacoco.cli/src/org/jacoco/cli/internal/CommandParser.java b/org.jacoco.cli/src/org/jacoco/cli/internal/CommandParser.java
deleted file mode 100644
index 0e31093b..00000000
--- a/org.jacoco.cli/src/org/jacoco/cli/internal/CommandParser.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2017 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;
-
-import org.kohsuke.args4j.CmdLineParser;
-
-/**
- * Parser which remembers the parsed command to have additional context
- * information to produce help output.
- */
-public class CommandParser extends CmdLineParser {
-
- private final Command command;
-
- CommandParser(final Command command) {
- super(command);
- this.command = command;
- }
-
- Command getCommand() {
- return command;
- }
-
-}
diff --git a/org.jacoco.cli/src/org/jacoco/cli/internal/Main.java b/org.jacoco.cli/src/org/jacoco/cli/internal/Main.java
deleted file mode 100644
index 8c6f3be4..00000000
--- a/org.jacoco.cli/src/org/jacoco/cli/internal/Main.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2017 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;
-
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.io.Writer;
-
-import org.kohsuke.args4j.Argument;
-import org.kohsuke.args4j.CmdLineException;
-
-/**
- * Entry point for all command line operations.
- */
-public class Main extends Command {
-
- private static final PrintWriter NUL = new PrintWriter(new Writer() {
-
- @Override
- public void write(final char[] arg0, final int arg1, final int arg2)
- throws IOException {
- }
-
- @Override
- public void flush() throws IOException {
- }
-
- @Override
- public void close() throws IOException {
- }
- });
-
- private final String[] args;
-
- Main(final String... args) {
- this.args = args;
- }
-
- @Argument(handler = CommandHandler.class, required = true)
- Command command;
-
- @Override
- public String description() {
- return "Command line interface for JaCoCo.";
- }
-
- @Override
- public String usage(final CommandParser parser) {
- return JAVACMD + "-help | <command>";
- }
-
- @Override
- public int execute(PrintWriter out, final PrintWriter err)
- throws Exception {
-
- final CommandParser mainParser = new CommandParser(this);
- try {
- mainParser.parseArgument(args);
- } catch (final CmdLineException e) {
- err.println(e.getMessage());
- err.println();
- ((CommandParser) e.getParser()).getCommand().printHelp(err);
- return -1;
- }
-
- if (help) {
- printHelp(out);
- return 0;
- }
-
- if (command.help) {
- command.printHelp(out);
- return 0;
- }
-
- if (command.quiet) {
- out = NUL;
- }
-
- return command.execute(out, err);
- }
-
- /**
- * Main entry point for program invocations.
- *
- * @param args
- * program arguments
- * @throws Exception
- * All internal exceptions are directly passed on to get printed
- * on the console
- */
- public static void main(final String... args) throws Exception {
- new Main(args).execute(new PrintWriter(System.out, true),
- new PrintWriter(System.err, true));
- }
-
-}
diff --git a/org.jacoco.cli/src/org/jacoco/cli/internal/XmlDocumentation.java b/org.jacoco.cli/src/org/jacoco/cli/internal/XmlDocumentation.java
deleted file mode 100644
index 83241c9a..00000000
--- a/org.jacoco.cli/src/org/jacoco/cli/internal/XmlDocumentation.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2017 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;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.util.List;
-
-import org.jacoco.cli.internal.commands.AllCommands;
-import org.jacoco.report.internal.xml.XMLDocument;
-import org.jacoco.report.internal.xml.XMLElement;
-import org.kohsuke.args4j.spi.OptionHandler;
-
-/**
- * Internal utility to dump all command descriptions as XML.
- */
-public final class XmlDocumentation {
-
- private XmlDocumentation() {
- }
-
- private static void writeCommand(final Command command,
- final XMLElement parent) throws IOException {
- final CommandParser parser = new CommandParser(command);
- final XMLElement element = parent.element("command");
- element.attr("name", command.name());
- element.element("usage").text(command.usage(parser));
- element.element("description").text(command.description());
- writeOptions(element, parser.getArguments());
- writeOptions(element, parser.getOptions());
- }
-
- private static void writeOptions(final XMLElement parent,
- @SuppressWarnings("rawtypes") final List<OptionHandler> list)
- throws IOException {
- for (final OptionHandler<?> o : list) {
- final XMLElement optionNode = parent.element("option");
- optionNode.attr("required", String.valueOf(o.option.required()));
- optionNode.attr("multiple",
- String.valueOf(o.setter.isMultiValued()));
- optionNode.element("usage").text(o.getNameAndMeta(null));
- optionNode.element("description").text(o.option.usage());
- }
- }
-
- /**
- * Called during the build process.
- *
- * @param args
- * exactly one argument expected with the target location
- * @throws IOException
- * if XML document cannot be written
- */
- public static void main(final String... args) throws IOException {
- final File file = new File(args[0]);
- file.getParentFile().mkdirs();
-
- final XMLElement root = new XMLDocument("documentation", null, null,
- "UTF-8", true, new FileOutputStream(file));
-
- for (final Command c : AllCommands.get()) {
- writeCommand(c, root);
- }
-
- root.close();
- }
-
-}
diff --git a/org.jacoco.cli/src/org/jacoco/cli/internal/commands/AllCommands.java b/org.jacoco.cli/src/org/jacoco/cli/internal/commands/AllCommands.java
deleted file mode 100644
index e0df1d91..00000000
--- a/org.jacoco.cli/src/org/jacoco/cli/internal/commands/AllCommands.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2017 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.util.Arrays;
-import java.util.List;
-
-import org.jacoco.cli.internal.Command;
-
-/**
- * List of all available commands.
- */
-public final class AllCommands {
-
- private AllCommands() {
- }
-
- /**
- * @return list of new instances of all available commands
- */
- public static List<Command> get() {
- return Arrays.asList(new Dump(), new Instrument(), new Merge(),
- new Report(), new ClassInfo(), new ExecInfo(), new Version());
- }
-
- /**
- * @return String containing all available command names
- */
- public static String names() {
- final StringBuilder sb = new StringBuilder();
- for (final Command c : get()) {
- if (sb.length() > 0) {
- sb.append('|');
- }
- sb.append(c.name());
- }
- return sb.toString();
- }
-
-}
diff --git a/org.jacoco.cli/src/org/jacoco/cli/internal/commands/ClassInfo.java b/org.jacoco.cli/src/org/jacoco/cli/internal/commands/ClassInfo.java
deleted file mode 100644
index 6cf66e14..00000000
--- a/org.jacoco.cli/src/org/jacoco/cli/internal/commands/ClassInfo.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2017 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.util.ArrayList;
-import java.util.List;
-
-import org.jacoco.cli.internal.Command;
-import org.jacoco.core.analysis.Analyzer;
-import org.jacoco.core.analysis.IClassCoverage;
-import org.jacoco.core.analysis.ICoverageVisitor;
-import org.jacoco.core.data.ExecutionDataStore;
-import org.kohsuke.args4j.Argument;
-
-/**
- * The <code>classinfo</code> command.
- */
-public class ClassInfo extends Command {
-
- @Argument(usage = "location of Java class files", metaVar = "<classlocations>")
- List<File> classfiles = new ArrayList<File>();
-
- @Override
- public String description() {
- return "Print information about Java class files at the provided location.";
- }
-
- @Override
- public int execute(final PrintWriter out, final PrintWriter err)
- throws IOException {
- final Analyzer analyzer = new Analyzer(new ExecutionDataStore(),
- new ICoverageVisitor() {
- public void visitCoverage(final IClassCoverage coverage) {
- print(coverage, out);
- }
- });
-
- for (final File file : classfiles) {
- analyzer.analyzeAll(file);
- }
- return 0;
- }
-
- private void print(final IClassCoverage coverage, final PrintWriter out) {
- out.printf("class name: %s%n", coverage.getName());
- out.printf("class id: %016x%n", Long.valueOf(coverage.getId()));
- out.printf("instructions: %s%n", Integer
- .valueOf(coverage.getInstructionCounter().getTotalCount()));
- out.printf("branches: %s%n",
- Integer.valueOf(coverage.getBranchCounter().getTotalCount()));
- out.printf("lines: %s%n",
- Integer.valueOf(coverage.getLineCounter().getTotalCount()));
- out.printf("methods: %s%n",
- Integer.valueOf(coverage.getMethodCounter().getTotalCount()));
- out.printf("complexity: %s%n%n", Integer
- .valueOf(coverage.getComplexityCounter().getTotalCount()));
- }
-
-}
diff --git a/org.jacoco.cli/src/org/jacoco/cli/internal/commands/Dump.java b/org.jacoco.cli/src/org/jacoco/cli/internal/commands/Dump.java
deleted file mode 100644
index d56a2a18..00000000
--- a/org.jacoco.cli/src/org/jacoco/cli/internal/commands/Dump.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2017 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 <code>dump</code> command.
- */
-public class Dump extends Command {
-
- @Option(name = "-address", usage = "host name or ip address to connect to (default localhost)", metaVar = "<address>")
- String address = AgentOptions.DEFAULT_ADDRESS;
-
- @Option(name = "-port", usage = "the port to connect to (default 6300)", metaVar = "<port>")
- int port = AgentOptions.DEFAULT_PORT;
-
- @Option(name = "-destfile", usage = "file to write execution data to", metaVar = "<path>", 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 0)", metaVar = "<count>")
- int retrycount = 0;
-
- @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;
- }
-
-}
diff --git a/org.jacoco.cli/src/org/jacoco/cli/internal/commands/ExecInfo.java b/org.jacoco.cli/src/org/jacoco/cli/internal/commands/ExecInfo.java
deleted file mode 100644
index e798bf6f..00000000
--- a/org.jacoco.cli/src/org/jacoco/cli/internal/commands/ExecInfo.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2017 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.FileInputStream;
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-import org.jacoco.cli.internal.Command;
-import org.jacoco.core.data.ExecutionData;
-import org.jacoco.core.data.ExecutionDataReader;
-import org.jacoco.core.data.IExecutionDataVisitor;
-import org.jacoco.core.data.ISessionInfoVisitor;
-import org.jacoco.core.data.SessionInfo;
-import org.kohsuke.args4j.Argument;
-
-/**
- * The <code>execinfo</code> command.
- */
-public class ExecInfo extends Command {
-
- @Argument(usage = "list of JaCoCo *.exec files to read", metaVar = "<execfiles>")
- List<File> execfiles = new ArrayList<File>();
-
- @Override
- public String description() {
- return "Print exec file content in human readable format.";
- }
-
- @Override
- public int execute(final PrintWriter out, final PrintWriter err)
- throws IOException {
- for (final File file : execfiles) {
- dump(file, out);
- }
- return 0;
- }
-
- private void dump(final File file, final PrintWriter out)
- throws IOException {
- out.printf("[INFO] Loading exec file %s.%n", file);
- out.println("CLASS ID HITS/PROBES CLASS NAME");
-
- final FileInputStream in = new FileInputStream(file);
- final ExecutionDataReader reader = new ExecutionDataReader(in);
- reader.setSessionInfoVisitor(new ISessionInfoVisitor() {
- public void visitSessionInfo(final SessionInfo info) {
- out.printf("Session \"%s\": %s - %s%n", info.getId(),
- new Date(info.getStartTimeStamp()),
- new Date(info.getDumpTimeStamp()));
- }
- });
- reader.setExecutionDataVisitor(new IExecutionDataVisitor() {
- public void visitClassExecution(final ExecutionData data) {
- out.printf("%016x %3d of %3d %s%n",
- Long.valueOf(data.getId()),
- Integer.valueOf(getHitCount(data.getProbes())),
- Integer.valueOf(data.getProbes().length),
- data.getName());
- }
- });
- reader.read();
- in.close();
- out.println();
- }
-
- private int getHitCount(final boolean[] data) {
- int count = 0;
- for (final boolean hit : data) {
- if (hit) {
- count++;
- }
- }
- return count;
- }
-
-}
diff --git a/org.jacoco.cli/src/org/jacoco/cli/internal/commands/Instrument.java b/org.jacoco.cli/src/org/jacoco/cli/internal/commands/Instrument.java
deleted file mode 100644
index 5fefc9dc..00000000
--- a/org.jacoco.cli/src/org/jacoco/cli/internal/commands/Instrument.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2017 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:
- * John Keeping - initial implementation
- * Marc R. Hoffmann - rework
- *
- *******************************************************************************/
-package org.jacoco.cli.internal.commands;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.PrintWriter;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.jacoco.cli.internal.Command;
-import org.jacoco.core.instr.Instrumenter;
-import org.jacoco.core.runtime.OfflineInstrumentationAccessGenerator;
-import org.kohsuke.args4j.Argument;
-import org.kohsuke.args4j.Option;
-
-/**
- * The <code>instrument</code> command.
- */
-public class Instrument extends Command {
-
- @Option(name = "-dest", usage = "path to write instrumented Java classes to", metaVar = "<dir>", required = true)
- File dest;
-
- @Argument(usage = "list of folder or files to instrument recusively", metaVar = "<sourcefiles>")
- List<File> source = new ArrayList<File>();
-
- private Instrumenter instrumenter;
-
- @Override
- public String description() {
- return "Off-line instrumentation of Java class files and JAR files.";
- }
-
- @Override
- public int execute(final PrintWriter out, final PrintWriter err)
- throws IOException {
- instrumenter = new Instrumenter(
- new OfflineInstrumentationAccessGenerator());
- int total = 0;
- for (final File s : source) {
- total += instrumentRecursive(s, dest);
- }
- out.printf("[INFO] %s classes instrumented to %s.%n",
- Integer.valueOf(total), dest.getAbsolutePath());
- return 0;
- }
-
- private int instrumentRecursive(final File src, final File dest)
- throws IOException {
- int total = 0;
- if (src.isDirectory()) {
- for (final File child : src.listFiles()) {
- total += instrumentRecursive(child,
- new File(dest, child.getName()));
- }
- } else {
- total += instrument(src, dest);
- }
- return total;
- }
-
- private int instrument(final File src, final File dest) throws IOException {
- dest.getParentFile().mkdirs();
- final InputStream input = new FileInputStream(src);
- try {
- final OutputStream output = new FileOutputStream(dest);
- try {
- return instrumenter.instrumentAll(input, output,
- src.getAbsolutePath());
- } finally {
- output.close();
- }
- } catch (final IOException e) {
- dest.delete();
- throw e;
- } finally {
- input.close();
- }
- }
-
-}
diff --git a/org.jacoco.cli/src/org/jacoco/cli/internal/commands/Merge.java b/org.jacoco.cli/src/org/jacoco/cli/internal/commands/Merge.java
deleted file mode 100644
index 530285c8..00000000
--- a/org.jacoco.cli/src/org/jacoco/cli/internal/commands/Merge.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2017 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.util.ArrayList;
-import java.util.List;
-
-import org.jacoco.cli.internal.Command;
-import org.jacoco.core.tools.ExecFileLoader;
-import org.kohsuke.args4j.Argument;
-import org.kohsuke.args4j.Option;
-
-/**
- * The <code>merge</code> command.
- */
-public class Merge extends Command {
-
- @Argument(usage = "list of JaCoCo *.exec files to read", metaVar = "<execfiles>")
- List<File> execfiles = new ArrayList<File>();
-
- @Option(name = "-destfile", usage = "file to write merged execution data to", metaVar = "<path>", required = true)
- File destfile;
-
- @Override
- public String description() {
- return "Merges multiple exec files into a new one.";
- }
-
- @Override
- public int execute(final PrintWriter out, final PrintWriter err)
- throws IOException {
- final ExecFileLoader loader = loadExecutionData(out);
- out.printf("[INFO] Writing execution data to %s.%n",
- destfile.getAbsolutePath());
- loader.save(destfile, true);
- return 0;
- }
-
- private ExecFileLoader loadExecutionData(final PrintWriter out)
- throws IOException {
- final ExecFileLoader loader = new ExecFileLoader();
- for (final File file : execfiles) {
- out.printf("[INFO] Loading execution data file %s.%n",
- file.getAbsolutePath());
- loader.load(file);
- }
- return loader;
- }
-
-}
diff --git a/org.jacoco.cli/src/org/jacoco/cli/internal/commands/Report.java b/org.jacoco.cli/src/org/jacoco/cli/internal/commands/Report.java
deleted file mode 100644
index be2fbfe4..00000000
--- a/org.jacoco.cli/src/org/jacoco/cli/internal/commands/Report.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2017 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:
- * John Keeping - initial implementation
- * Marc R. Hoffmann - rework
- *
- *******************************************************************************/
-package org.jacoco.cli.internal.commands;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-import org.jacoco.cli.internal.Command;
-import org.jacoco.core.analysis.Analyzer;
-import org.jacoco.core.analysis.CoverageBuilder;
-import org.jacoco.core.analysis.IBundleCoverage;
-import org.jacoco.core.analysis.IClassCoverage;
-import org.jacoco.core.data.ExecutionDataStore;
-import org.jacoco.core.tools.ExecFileLoader;
-import org.jacoco.report.DirectorySourceFileLocator;
-import org.jacoco.report.FileMultiReportOutput;
-import org.jacoco.report.IReportVisitor;
-import org.jacoco.report.ISourceFileLocator;
-import org.jacoco.report.MultiReportVisitor;
-import org.jacoco.report.MultiSourceFileLocator;
-import org.jacoco.report.csv.CSVFormatter;
-import org.jacoco.report.html.HTMLFormatter;
-import org.jacoco.report.xml.XMLFormatter;
-import org.kohsuke.args4j.Argument;
-import org.kohsuke.args4j.Option;
-
-/**
- * The <code>report</code> command.
- */
-public class Report extends Command {
-
- @Argument(usage = "list of JaCoCo *.exec files to read", metaVar = "<execfiles>")
- List<File> execfiles = new ArrayList<File>();
-
- @Option(name = "-classfiles", usage = "location of Java class files", metaVar = "<path>", required = true)
- List<File> classfiles = new ArrayList<File>();
-
- @Option(name = "-sourcefiles", usage = "location of the source files", metaVar = "<path>")
- List<File> sourcefiles = new ArrayList<File>();
-
- @Option(name = "-tabwith", usage = "tab stop width for the source pages (default 4)", metaVar = "<n>")
- int tabwidth = 4;
-
- @Option(name = "-name", usage = "name used for this report", metaVar = "<name>")
- String name = "JaCoCo Coverage Report";
-
- @Option(name = "-encoding", usage = "source file encoding (default platform encoding)", metaVar = "<charset>")
- String encoding;
-
- @Option(name = "-xml", usage = "output file for the XML report", metaVar = "<file>")
- File xml;
-
- @Option(name = "-csv", usage = "output file for the CSV report", metaVar = "<file>")
- File csv;
-
- @Option(name = "-html", usage = "output directory for the HTML report", metaVar = "<dir>")
- File html;
-
- @Override
- public String description() {
- return "Generate reports in different formats by reading exec and Java class files.";
- }
-
- @Override
- public int execute(final PrintWriter out, final PrintWriter err)
- throws IOException {
- final ExecFileLoader loader = loadExecutionData(out);
- final IBundleCoverage bundle = analyze(loader.getExecutionDataStore(),
- out);
- writeReports(bundle, loader, out);
- return 0;
- }
-
- private ExecFileLoader loadExecutionData(final PrintWriter out)
- throws IOException {
- final ExecFileLoader loader = new ExecFileLoader();
- for (final File file : execfiles) {
- out.printf("[INFO] Loading execution data file %s.%n",
- file.getAbsolutePath());
- loader.load(file);
- }
- return loader;
- }
-
- private IBundleCoverage analyze(final ExecutionDataStore data,
- final PrintWriter out) throws IOException {
- final CoverageBuilder builder = new CoverageBuilder();
- final Analyzer analyzer = new Analyzer(data, builder);
- for (final File f : classfiles) {
- analyzer.analyzeAll(f);
- }
- printNoMatchWarning(builder.getNoMatchClasses(), out);
- return builder.getBundle(name);
- }
-
- private void printNoMatchWarning(final Collection<IClassCoverage> nomatch,
- final PrintWriter out) {
- if (!nomatch.isEmpty()) {
- out.println(
- "[WARN] Some classes do not match with execution data.");
- out.println(
- "[WARN] For report generation the same class files must be used as at runtime.");
- for (final IClassCoverage c : nomatch) {
- out.printf(
- "[WARN] Execution data for class %s does not match.%n",
- c.getName());
- }
- }
- }
-
- private void writeReports(final IBundleCoverage bundle,
- final ExecFileLoader loader, final PrintWriter out)
- throws IOException {
- out.printf("[INFO] Writing report with %s classes.%n",
- Integer.valueOf(bundle.getClassCounter().getTotalCount()));
- final IReportVisitor visitor = createReportVisitor();
- visitor.visitInfo(loader.getSessionInfoStore().getInfos(),
- loader.getExecutionDataStore().getContents());
- visitor.visitBundle(bundle, getSourceLocator());
- visitor.visitEnd();
- }
-
- private IReportVisitor createReportVisitor()
- throws IOException, IOException {
- final List<IReportVisitor> visitors = new ArrayList<IReportVisitor>();
-
- if (xml != null) {
- final XMLFormatter formatter = new XMLFormatter();
- visitors.add(formatter.createVisitor(new FileOutputStream(xml)));
- }
-
- if (csv != null) {
- final CSVFormatter formatter = new CSVFormatter();
- visitors.add(formatter.createVisitor(new FileOutputStream(csv)));
- }
-
- if (html != null) {
- final HTMLFormatter formatter = new HTMLFormatter();
- visitors.add(
- formatter.createVisitor(new FileMultiReportOutput(html)));
- }
-
- return new MultiReportVisitor(visitors);
- }
-
- private ISourceFileLocator getSourceLocator() {
- final MultiSourceFileLocator multi = new MultiSourceFileLocator(
- tabwidth);
- for (final File f : sourcefiles) {
- multi.add(new DirectorySourceFileLocator(f, encoding, tabwidth));
- }
- return multi;
- }
-
-}
diff --git a/org.jacoco.cli/src/org/jacoco/cli/internal/commands/Version.java b/org.jacoco.cli/src/org/jacoco/cli/internal/commands/Version.java
deleted file mode 100644
index ef1e33a1..00000000
--- a/org.jacoco.cli/src/org/jacoco/cli/internal/commands/Version.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2017 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.IOException;
-import java.io.PrintWriter;
-
-import org.jacoco.cli.internal.Command;
-import org.jacoco.core.JaCoCo;
-
-/**
- * The <code>version</code> command.
- */
-public class Version extends Command {
-
- @Override
- public String description() {
- return "Print JaCoCo version information.";
- }
-
- @Override
- public int execute(final PrintWriter out, final PrintWriter err)
- throws IOException {
- out.println(JaCoCo.VERSION);
- return 0;
- }
-
-}
diff --git a/org.jacoco.core.test/src/org/jacoco/core/tools/ExecDumpClientTest.java b/org.jacoco.core.test/src/org/jacoco/core/tools/ExecDumpClientTest.java
index 80918149..3fe1688f 100644
--- a/org.jacoco.core.test/src/org/jacoco/core/tools/ExecDumpClientTest.java
+++ b/org.jacoco.core.test/src/org/jacoco/core/tools/ExecDumpClientTest.java
@@ -101,7 +101,7 @@ public class ExecDumpClientTest {
// 3. Retry
"onConnectionFailure", "onConnecting")
- , callbacks);
+ , callbacks);
}
@Test
@@ -126,12 +126,6 @@ public class ExecDumpClientTest {
assertTrue(resetRequested);
}
- @Test(expected = IOException.class)
- public void testNopServer() throws IOException {
- int port = createNopServer();
- client.dump((String) null, port);
- }
-
private int getFreePort() throws IOException {
final ServerSocket server = new ServerSocket(0, 0,
InetAddress.getByName(null));
@@ -165,27 +159,11 @@ public class ExecDumpClientTest {
dumpRequested = dump;
resetRequested = reset;
if (dump) {
- writer.visitSessionInfo(
- new SessionInfo("TestId", 100, 200));
+ writer.visitSessionInfo(new SessionInfo("TestId", 100, 200));
}
writer.sendCmdOk();
}
});
reader.read();
}
-
- private int createNopServer() throws IOException {
- server = new ServerSocket(0, 0, InetAddress.getByName(null));
- new Thread(new Runnable() {
- public void run() {
- try {
- server.accept().close();
- } catch (IOException e) {
- // ignore
- }
- }
- }).start();
- return server.getLocalPort();
- }
-
}
diff --git a/org.jacoco.core/src/org/jacoco/core/tools/ExecDumpClient.java b/org.jacoco.core/src/org/jacoco/core/tools/ExecDumpClient.java
index e99204da..39fd8f34 100644
--- a/org.jacoco.core/src/org/jacoco/core/tools/ExecDumpClient.java
+++ b/org.jacoco.core/src/org/jacoco/core/tools/ExecDumpClient.java
@@ -123,10 +123,7 @@ public class ExecDumpClient {
.setExecutionDataVisitor(loader.getExecutionDataStore());
remoteWriter.visitDumpCommand(dump, reset);
-
- if (!remoteReader.read()) {
- throw new IOException("Socket closed unexpectedly.");
- }
+ remoteReader.read();
} finally {
socket.close();
diff --git a/org.jacoco.doc/docroot/doc/changes.html b/org.jacoco.doc/docroot/doc/changes.html
index 6561c813..8d2e4f8c 100644
--- a/org.jacoco.doc/docroot/doc/changes.html
+++ b/org.jacoco.doc/docroot/doc/changes.html
@@ -38,8 +38,6 @@
(GitHub <a href="https://github.com/jacoco/jacoco/issues/529">#529</a>).</li>
<li>Maven aggregated reports will now also include modules of runtime dependencies
(GitHub <a href="https://github.com/jacoco/jacoco/issues/498">#498</a>).</li>
- <li>JaCoCo now comes with a simple command line interface
- (GitHub <a href="https://github.com/jacoco/jacoco/issues/525">#525</a>).</li>
</ul>
<h3>Non-functional Changes</h3>
diff --git a/org.jacoco.doc/docroot/doc/index.html b/org.jacoco.doc/docroot/doc/index.html
index e17a3491..4de1a589 100644
--- a/org.jacoco.doc/docroot/doc/index.html
+++ b/org.jacoco.doc/docroot/doc/index.html
@@ -44,7 +44,6 @@
<li><a href="examples/build/pom.xml">Maven Usage Example</a> -
<a href="examples/build/pom-offline.xml">Offline Example</a></li>
<li><a href="agent.html">Java Agent</a></li>
- <li><a href="cli.html">Command Line Interface</a></li>
<li><a href="classids.html">Class Ids</a></li>
<li><a href="offline.html">Offline Instrumentation</a></li>
<li><a href="faq.html">FAQ</a></li>
diff --git a/org.jacoco.doc/docroot/doc/integrations.html b/org.jacoco.doc/docroot/doc/integrations.html
index beadc01a..992417c3 100644
--- a/org.jacoco.doc/docroot/doc/integrations.html
+++ b/org.jacoco.doc/docroot/doc/integrations.html
@@ -40,7 +40,7 @@
</tr>
<tr>
<td>Command Line</td>
- <td><a href="cli.html">JaCoCo Manual</a></td>
+ <td><a href="agent.html">JaCoCo Manual</a></td>
<td></td>
</tr>
<tr>
diff --git a/org.jacoco.doc/docroot/index.html b/org.jacoco.doc/docroot/index.html
index f9f082c8..9a7991ad 100644
--- a/org.jacoco.doc/docroot/index.html
+++ b/org.jacoco.doc/docroot/index.html
@@ -68,12 +68,6 @@
<td>Ant <i>(all other dependencies included)</i></td>
</tr>
<tr>
- <td><span class="el_jar">jacococli.jar</span></td>
- <td>no</td>
- <td>JaCoCo Command Line Interface</td>
- <td>- <i>(all dependencies included)</i></td>
- </tr>
- <tr>
<td><span class="el_jar">org.jacoco.agent_@qualified.bundle.version@.jar</span></td>
<td>yes</td>
<td>JaCoCo agent</td>
diff --git a/org.jacoco.doc/pom.xml b/org.jacoco.doc/pom.xml
index c43b3ec7..505eb10b 100644
--- a/org.jacoco.doc/pom.xml
+++ b/org.jacoco.doc/pom.xml
@@ -82,16 +82,6 @@
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
- <artifactId>org.jacoco.cli</artifactId>
- </dependency>
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>org.jacoco.cli.test</artifactId>
- <version>${project.version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>${project.groupId}</groupId>
<artifactId>org.jacoco.examples</artifactId>
<version>${project.version}</version>
</dependency>
@@ -162,7 +152,6 @@
<fileset dir="../org.jacoco.agent.test/target" includes="surefire-reports/**/*.xml"/>
<fileset dir="../org.jacoco.agent.rt.test/target" includes="surefire-reports/**/*.xml"/>
<fileset dir="../org.jacoco.ant.test/target" includes="surefire-reports/**/*.xml"/>
- <fileset dir="../org.jacoco.cli.test/target" includes="surefire-reports/**/*.xml"/>
<fileset dir="../org.jacoco.core.test/target" includes="surefire-reports/**/*.xml"/>
<fileset dir="../org.jacoco.report.test/target" includes="surefire-reports/**/*.xml"/>
<fileset dir="../org.jacoco.examples.test/target" includes="surefire-reports/**/*.xml"/>
@@ -241,7 +230,7 @@
<artifactId>xml-maven-plugin</artifactId>
<executions>
<execution>
- <id>transform-generated-doc</id>
+ <id>default-transform</id>
<goals>
<goal>transform</goal>
</goals>
@@ -273,32 +262,6 @@
</parameter>
</parameters>
</transformationSet>
- <transformationSet>
- <dir>../org.jacoco.cli/target/generated-documentation</dir>
- <includes>
- <include>*.xml</include>
- </includes>
- <stylesheet>xsl/cli.xsl</stylesheet>
- <fileMappers>
- <fileMapper implementation="org.codehaus.plexus.components.io.filemappers.FileExtensionMapper">
- <targetExtension>.html</targetExtension>
- </fileMapper>
- </fileMappers>
- <parameters>
- <parameter>
- <name>qualified.bundle.version</name>
- <value>${qualified.bundle.version}</value>
- </parameter>
- <parameter>
- <name>jacoco.home.url</name>
- <value>${jacoco.home.url}</value>
- </parameter>
- <parameter>
- <name>copyright.years</name>
- <value>${copyright.years}</value>
- </parameter>
- </parameters>
- </transformationSet>
</transformationSets>
</configuration>
</execution>
diff --git a/org.jacoco.doc/xsl/cli.xsl b/org.jacoco.doc/xsl/cli.xsl
deleted file mode 100644
index 644d92d1..00000000
--- a/org.jacoco.doc/xsl/cli.xsl
+++ /dev/null
@@ -1,113 +0,0 @@
-<?xml version="1.0"?>
-
-<!--
- Copyright (c) 2009, 2017 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
--->
-
-<xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="xdoc">
-
- <xsl:output method="xml" indent="yes" encoding="UTF-8"
- doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" />
-
- <xsl:param name="qualified.bundle.version" />
- <xsl:param name="jacoco.home.url" />
- <xsl:param name="copyright.years" />
-
- <xsl:template match="/">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
- <link rel="stylesheet" href="resources/doc.css" charset="UTF-8"
- type="text/css" />
- <link rel="shortcut icon" href="resources/report.gif" type="image/gif" />
- <title>
- JaCoCo - Command Line Interface
- </title>
- </head>
- <body>
- <div class="breadcrumb">
- <a href="../index.html" class="el_report">JaCoCo</a> &gt;
- <a href="index.html" class="el_group">Documentation</a> &gt;
- <span class="el_source">Command Line Interface</span>
- </div>
- <div id="content">
-
- <h1>Command Line Interface</h1>
-
- <p>
- JaCoCo comes with a command line interface to perform
- basic operations from the command line. The command line
- tools with all dependencies are packaged in
- <code>jacococli.jar</code> and are available with the
- JaCoCo download. A Java VM with version 1.5 or greater is
- required for execution.
- </p>
-
- <p>
- For more sophisticated usage especially with larger
- projects please use our
- <a href="integrations.html">integrations</a> with various
- build tools.
- </p>
-
- <p>
- The following commands are available. Each command has a
- list of optional and required parameters. Some parameters
- can be specified multiple times to provide multiple values.
- </p>
- <xsl:apply-templates select="documentation" />
- </div>
- <div class="footer">
- <span class="right">
- <a href="{$jacoco.home.url}">JaCoCo</a>
- &#160;
- <xsl:value-of select="$qualified.bundle.version" />
- </span>
- <a href="../doc/license.html">Copyright</a>
- &#169;
- <xsl:value-of select="$copyright.years" />
- Mountainminds GmbH &amp; Co. KG and Contributors
- </div>
- </body>
- </html>
- </xsl:template>
-
- <xsl:template match="command">
- <h2><xsl:value-of select="@name" /></h2>
- <pre class="source" style="white-space: pre-wrap">
- <xsl:value-of select="usage" />
- </pre>
- <p><xsl:value-of select="description" /></p>
- <table class="coverage">
- <thead>
- <tr>
- <td>Option</td>
- <td>Description</td>
- <td>Required</td>
- <td>Multiple</td>
- </tr>
- </thead>
- <tbody>
- <xsl:for-each select="option">
- <tr>
- <td><code><xsl:value-of select="usage" /></code></td>
- <td><xsl:value-of select="description" /></td>
- <td style="text-align:center"><xsl:if test="@required = 'true'">&#x25fc;</xsl:if></td>
- <td style="text-align:center"><xsl:if test="@multiple = 'true'">&#x25fc;</xsl:if></td>
- </tr>
- </xsl:for-each>
- </tbody>
- </table>
- </xsl:template>
-
-</xsl:stylesheet>
-
diff --git a/org.jacoco.tests/pom.xml b/org.jacoco.tests/pom.xml
index 2e676f98..d3632123 100644
--- a/org.jacoco.tests/pom.xml
+++ b/org.jacoco.tests/pom.xml
@@ -31,9 +31,8 @@
<module>../org.jacoco.agent.rt.test</module>
<module>../org.jacoco.agent.test</module>
<module>../org.jacoco.ant.test</module>
- <module>../org.jacoco.cli.test</module>
- <module>../org.jacoco.examples.test</module>
<module>../jacoco-maven-plugin.test</module>
+ <module>../org.jacoco.examples.test</module>
</modules>
<properties>