Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor CLI classes to package de.jplag.cli #716

Merged
merged 4 commits into from
Nov 7, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 4 additions & 15 deletions cli/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
</parent>
<artifactId>cli</artifactId>
<dependencies>
<!-- IMPORTANT: For Coverage testing, you have to add dependencies to the coverage-report project ! -->

<dependency>
<groupId>de.jplag</groupId>
<artifactId>jplag</artifactId>
Expand Down Expand Up @@ -103,7 +105,7 @@
<configuration>
<archive>
<manifest>
<mainClass>de.jplag.CLI</mainClass>
<mainClass>de.jplag.cli.CLI</mainClass>
<packageName>jplag</packageName>
</manifest>
</archive>
Expand All @@ -117,7 +119,7 @@
</descriptors>
<archive>
<manifest>
<mainClass>de.jplag.CLI</mainClass>
<mainClass>de.jplag.cli.CLI</mainClass>
<packageName>jplag</packageName>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
Expand All @@ -126,19 +128,6 @@
<finalName>jplag-${project.version}</finalName>
</configuration>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<executions>
<execution>
<id>report-aggregate</id>
<goals>
<goal>report-aggregate</goal>
</goals>
<phase>verify</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Original file line number Diff line number Diff line change
@@ -1,32 +1,32 @@
package de.jplag;

import static de.jplag.CommandLineArgument.BASE_CODE;
import static de.jplag.CommandLineArgument.CLUSTER_AGGLOMERATIVE_INTER_CLUSTER_SIMILARITY;
import static de.jplag.CommandLineArgument.CLUSTER_AGGLOMERATIVE_THRESHOLD;
import static de.jplag.CommandLineArgument.CLUSTER_ALGORITHM;
import static de.jplag.CommandLineArgument.CLUSTER_DISABLE;
import static de.jplag.CommandLineArgument.CLUSTER_METRIC;
import static de.jplag.CommandLineArgument.CLUSTER_PREPROCESSING_CDF;
import static de.jplag.CommandLineArgument.CLUSTER_PREPROCESSING_NONE;
import static de.jplag.CommandLineArgument.CLUSTER_PREPROCESSING_PERCENTILE;
import static de.jplag.CommandLineArgument.CLUSTER_PREPROCESSING_THRESHOLD;
import static de.jplag.CommandLineArgument.CLUSTER_SPECTRAL_BANDWIDTH;
import static de.jplag.CommandLineArgument.CLUSTER_SPECTRAL_KMEANS_ITERATIONS;
import static de.jplag.CommandLineArgument.CLUSTER_SPECTRAL_MAX_RUNS;
import static de.jplag.CommandLineArgument.CLUSTER_SPECTRAL_MIN_RUNS;
import static de.jplag.CommandLineArgument.CLUSTER_SPECTRAL_NOISE;
import static de.jplag.CommandLineArgument.DEBUG;
import static de.jplag.CommandLineArgument.EXCLUDE_FILE;
import static de.jplag.CommandLineArgument.LANGUAGE;
import static de.jplag.CommandLineArgument.MIN_TOKEN_MATCH;
import static de.jplag.CommandLineArgument.NEW_DIRECTORY;
import static de.jplag.CommandLineArgument.OLD_DIRECTORY;
import static de.jplag.CommandLineArgument.RESULT_FOLDER;
import static de.jplag.CommandLineArgument.ROOT_DIRECTORY;
import static de.jplag.CommandLineArgument.SHOWN_COMPARISONS;
import static de.jplag.CommandLineArgument.SIMILARITY_THRESHOLD;
import static de.jplag.CommandLineArgument.SUBDIRECTORY;
import static de.jplag.CommandLineArgument.SUFFIXES;
package de.jplag.cli;

import static de.jplag.cli.CommandLineArgument.BASE_CODE;
import static de.jplag.cli.CommandLineArgument.CLUSTER_AGGLOMERATIVE_INTER_CLUSTER_SIMILARITY;
import static de.jplag.cli.CommandLineArgument.CLUSTER_AGGLOMERATIVE_THRESHOLD;
import static de.jplag.cli.CommandLineArgument.CLUSTER_ALGORITHM;
import static de.jplag.cli.CommandLineArgument.CLUSTER_DISABLE;
import static de.jplag.cli.CommandLineArgument.CLUSTER_METRIC;
import static de.jplag.cli.CommandLineArgument.CLUSTER_PREPROCESSING_CDF;
import static de.jplag.cli.CommandLineArgument.CLUSTER_PREPROCESSING_NONE;
import static de.jplag.cli.CommandLineArgument.CLUSTER_PREPROCESSING_PERCENTILE;
import static de.jplag.cli.CommandLineArgument.CLUSTER_PREPROCESSING_THRESHOLD;
import static de.jplag.cli.CommandLineArgument.CLUSTER_SPECTRAL_BANDWIDTH;
import static de.jplag.cli.CommandLineArgument.CLUSTER_SPECTRAL_KMEANS_ITERATIONS;
import static de.jplag.cli.CommandLineArgument.CLUSTER_SPECTRAL_MAX_RUNS;
import static de.jplag.cli.CommandLineArgument.CLUSTER_SPECTRAL_MIN_RUNS;
import static de.jplag.cli.CommandLineArgument.CLUSTER_SPECTRAL_NOISE;
import static de.jplag.cli.CommandLineArgument.DEBUG;
import static de.jplag.cli.CommandLineArgument.EXCLUDE_FILE;
import static de.jplag.cli.CommandLineArgument.LANGUAGE;
import static de.jplag.cli.CommandLineArgument.MIN_TOKEN_MATCH;
import static de.jplag.cli.CommandLineArgument.NEW_DIRECTORY;
import static de.jplag.cli.CommandLineArgument.OLD_DIRECTORY;
import static de.jplag.cli.CommandLineArgument.RESULT_FOLDER;
import static de.jplag.cli.CommandLineArgument.ROOT_DIRECTORY;
import static de.jplag.cli.CommandLineArgument.SHOWN_COMPARISONS;
import static de.jplag.cli.CommandLineArgument.SIMILARITY_THRESHOLD;
import static de.jplag.cli.CommandLineArgument.SUBDIRECTORY;
import static de.jplag.cli.CommandLineArgument.SUFFIXES;

import java.io.File;
import java.security.SecureRandom;
Expand All @@ -45,10 +45,12 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import de.jplag.JPlag;
import de.jplag.JPlagResult;
import de.jplag.cli.logger.CollectedLoggerFactory;
import de.jplag.clustering.ClusteringOptions;
import de.jplag.clustering.Preprocessing;
import de.jplag.exceptions.ExitException;
import de.jplag.logger.CollectedLoggerFactory;
import de.jplag.options.JPlagOptions;
import de.jplag.reporting.reportobject.ReportObjectFactory;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package de.jplag;
package de.jplag.cli;

import java.util.HashMap;
import java.util.Map;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package de.jplag;
package de.jplag.cli;

import static de.jplag.CLI.ADVANCED_GROUP;
import static de.jplag.CLI.CLUSTERING_GROUP_NAME;
import static de.jplag.cli.CLI.ADVANCED_GROUP;
import static de.jplag.cli.CLI.CLUSTERING_GROUP_NAME;
import static de.jplag.options.JPlagOptions.DEFAULT_SHOWN_COMPARISONS;
import static de.jplag.options.JPlagOptions.DEFAULT_SIMILARITY_THRESHOLD;
import static net.sourceforge.argparse4j.impl.Arguments.append;
Expand All @@ -20,6 +20,9 @@
import net.sourceforge.argparse4j.inf.FeatureControl;
import net.sourceforge.argparse4j.inf.Namespace;

import de.jplag.Language;
import de.jplag.Messages;
import de.jplag.NumberOfArgumentValues;
import de.jplag.clustering.ClusteringAlgorithm;
import de.jplag.clustering.ClusteringOptions;
import de.jplag.clustering.algorithm.InterClusterSimilarity;
Expand Down Expand Up @@ -126,7 +129,7 @@ public String flag() {
* @return the flag name of the command line argument without leading dashes and inner dashes replaced with underscores.
*/
public String flagWithoutDash() {
return flag.replaceAll("^-+", "").replaceAll("-", "_");
return flag.replaceAll("^-+", "").replace("-", "_");
}

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package de.jplag;
package de.jplag.cli;

import java.util.Collections;
import java.util.Map;
Expand All @@ -11,6 +11,8 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import de.jplag.Language;

/**
* This class contains methods to load {@link Language Languages}.
* @author Dominik Fuchss
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package de.jplag.logger;
package de.jplag.cli.logger;

import java.io.PrintStream;
import java.io.Serial;
Expand Down Expand Up @@ -27,7 +27,7 @@ public final class CollectedLogger extends MarkerIgnoringBase {
private static final int LOG_LEVEL_WARN = LocationAwareLogger.WARN_INT;
private static final int LOG_LEVEL_ERROR = LocationAwareLogger.ERROR_INT;

private final int currentLogLevel = LOG_LEVEL_INFO;
private static final int CURRENT_LOG_LEVEL = LOG_LEVEL_INFO;

/**
* The short name of this simple log instance
Expand Down Expand Up @@ -117,7 +117,7 @@ private String computeShortName() {
}

private boolean isLevelEnabled(int logLevel) {
return logLevel >= currentLogLevel;
return logLevel >= CURRENT_LOG_LEVEL;
}

private String renderLevel(int level) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package de.jplag.logger;
package de.jplag.cli.logger;

import java.util.ArrayList;
import java.util.List;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package de.jplag.logger;
package de.jplag.cli.logger;

import org.kohsuke.MetaInfServices;
import org.slf4j.ILoggerFactory;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package de.jplag.logger;
package de.jplag.cli.logger;

public record Triple<A, B, C> (A first, B second, C third) {
}
2 changes: 0 additions & 2 deletions cli/src/test/java/de/jplag/cli/BaseCodeOptionTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@

import org.junit.jupiter.api.Test;

import de.jplag.CommandLineArgument;

class BaseCodeOptionTest extends CommandLineInterfaceTest {

private static final String NAME = "BaseCodeName";
Expand Down
1 change: 0 additions & 1 deletion cli/src/test/java/de/jplag/cli/ClusteringTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@

import org.junit.jupiter.api.Test;

import de.jplag.CommandLineArgument;
import de.jplag.clustering.Preprocessing;

class ClusteringTest extends CommandLineInterfaceTest {
Expand Down
4 changes: 1 addition & 3 deletions cli/src/test/java/de/jplag/cli/CommandLineInterfaceTest.java
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
package de.jplag.cli;

import static de.jplag.CommandLineArgument.ROOT_DIRECTORY;
import static de.jplag.cli.CommandLineArgument.ROOT_DIRECTORY;
import static java.util.stream.Collectors.toSet;

import java.util.Arrays;

import net.sourceforge.argparse4j.inf.Namespace;

import de.jplag.CLI;
import de.jplag.CommandLineArgument;
import de.jplag.options.JPlagOptions;

/**
Expand Down
2 changes: 0 additions & 2 deletions cli/src/test/java/de/jplag/cli/LanguageTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,7 @@
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;

import de.jplag.CommandLineArgument;
import de.jplag.Language;
import de.jplag.LanguageLoader;

class LanguageTest extends CommandLineInterfaceTest {

Expand Down
2 changes: 0 additions & 2 deletions cli/src/test/java/de/jplag/cli/MinTokenMatchTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@

import org.junit.jupiter.api.Test;

import de.jplag.CommandLineArgument;

class MinTokenMatchTest extends CommandLineInterfaceTest {

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@

import org.junit.jupiter.api.Test;

import de.jplag.CommandLineArgument;
import de.jplag.options.JPlagOptions;

class SimiliarityThresholdTest extends CommandLineInterfaceTest {
Expand Down
1 change: 0 additions & 1 deletion cli/src/test/java/de/jplag/cli/StoredMatchesTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@

import org.junit.jupiter.api.Test;

import de.jplag.CommandLineArgument;
import de.jplag.options.JPlagOptions;

class StoredMatchesTest extends CommandLineInterfaceTest {
Expand Down
3 changes: 1 addition & 2 deletions core/src/test/java/de/jplag/TestBase.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
import java.util.stream.Collectors;

import de.jplag.exceptions.ExitException;
import de.jplag.java.Language;
import de.jplag.options.JPlagOptions;

public abstract class TestBase {
Expand Down Expand Up @@ -50,7 +49,7 @@ protected JPlagResult runJPlag(List<String> newPaths, List<String> oldPaths, Fun
throws ExitException {
var newFiles = newPaths.stream().map(path -> new File(path)).collect(Collectors.toSet());
var oldFiles = oldPaths.stream().map(path -> new File(path)).collect(Collectors.toSet());
JPlagOptions options = new JPlagOptions(LanguageLoader.getLanguage(Language.IDENTIFIER).orElseThrow(), newFiles, oldFiles);
JPlagOptions options = new JPlagOptions(new de.jplag.java.Language(), newFiles, oldFiles);
options = customization.apply(options);
JPlag jplag = new JPlag(options);
return jplag.run();
Expand Down
17 changes: 4 additions & 13 deletions core/src/test/java/de/jplag/special/TokenPrinterTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
import org.junit.jupiter.api.Test;

import de.jplag.JPlagResult;
import de.jplag.LanguageLoader;
import de.jplag.Submission;
import de.jplag.TestBase;
import de.jplag.TokenPrinter;
Expand All @@ -26,17 +25,10 @@ class TokenPrinterTest extends TestBase {
private static final int MIN_TOKEN_MATCH = 5;
private static final String PRINTER_FOLDER = "PRINTER"; // in the folder 'jplag/src/test/resources/samples'

private static final String LANGUAGE_CPP = de.jplag.cpp.Language.IDENTIFIER;
private static final String LANGUAGE_R = de.jplag.rlang.Language.IDENTIFIER;
private static final String LANGUAGE_KOTLIN = de.jplag.kotlin.Language.IDENTIFIER;

private static final String LANGUAGE_GO = de.jplag.golang.Language.IDENTIFIER;

@Disabled("Not a meaningful test, used for designing the token set")
@Test
void printCPPFiles() {
printSubmissions(
options -> options.withLanguageOption(LanguageLoader.getLanguage(LANGUAGE_CPP).orElseThrow()).withMinimumTokenMatch(MIN_TOKEN_MATCH));
printSubmissions(options -> options.withLanguageOption(new de.jplag.cpp.Language()).withMinimumTokenMatch(MIN_TOKEN_MATCH));
}

@Disabled("Not a meaningful test, used for designing the token set")
Expand All @@ -48,20 +40,19 @@ void printJavaFiles() {
@Disabled("Not a meaningful test, used for designing the token set")
@Test
void printRLangFiles() {
printSubmissions(
options -> options.withLanguageOption(LanguageLoader.getLanguage(LANGUAGE_R).orElseThrow()).withMinimumTokenMatch(MIN_TOKEN_MATCH));
printSubmissions(options -> options.withLanguageOption(new de.jplag.rlang.Language()).withMinimumTokenMatch(MIN_TOKEN_MATCH));
}

@Disabled("Not a meaningful test, used for designing the token set")
@Test
void printGoFiles() {
printSubmissions(options -> options.withLanguageOption(LanguageLoader.getLanguage(LANGUAGE_GO).orElseThrow()));
printSubmissions(options -> options.withLanguageOption(new de.jplag.golang.Language()));
}

@Disabled("Not a meaningful test, used for designing the token set")
@Test
void printKotlinFiles() {
printSubmissions(options -> options.withLanguageOption(LanguageLoader.getLanguage(LANGUAGE_KOTLIN).orElseThrow()));
printSubmissions(options -> options.withLanguageOption(new de.jplag.kotlin.Language()));
}

private void printSubmissions(Function<JPlagOptions, JPlagOptions> optionsCustomization) {
Expand Down
Loading