From 6721b1db6924178ac56031832ea4a3feeb1a62f1 Mon Sep 17 00:00:00 2001
From: Pedro GALVAO
Date: Wed, 30 Mar 2022 09:43:16 +0200
Subject: [PATCH 01/83] Check if bug exists before executing tasks. Delete bug
and libraries in backend if overwrite option is used.
---
.../org/eclipse/steady/kb/command/Import.java | 21 +++++++++++++++++++
.../kb/task/ImportAffectedLibraries.java | 4 ++++
.../steady/kb/task/ImportVulnerability.java | 8 +++----
.../steady/backend/BackendConnector.java | 16 ++++++++++++++
4 files changed, 45 insertions(+), 4 deletions(-)
diff --git a/kb-importer/src/main/java/org/eclipse/steady/kb/command/Import.java b/kb-importer/src/main/java/org/eclipse/steady/kb/command/Import.java
index 6aa443c08..f22b199c9 100755
--- a/kb-importer/src/main/java/org/eclipse/steady/kb/command/Import.java
+++ b/kb-importer/src/main/java/org/eclipse/steady/kb/command/Import.java
@@ -115,6 +115,27 @@ private void importVuln(HashMap args, String dirPath) {
Import.log.error("Please specify the vulerability id in the json");
return;
}
+
+ String vulnId = vuln.getVulnId();
+ boolean bugExists = false;
+ try {
+ bugExists = BackendConnector.getInstance().isBugExisting(vulnId);
+ }
+ catch (BackendConnectionException e) {
+ log.error("Can't connect to the Backend");
+ return;
+ }
+
+ Boolean overwrite = (Boolean) args.get(OVERWRITE_OPTION);
+ if (bugExists) {
+ if (overwrite) {
+ args.put(DELETE, true);
+ }
+ else {
+ log.info("Bug [{}] already exists in backend, analysis will be skipped", vulnId);
+ return;
+ }
+ }
List importTasks = TaskProvider.getInstance().getTasks(Command.NAME.IMPORT);
diff --git a/kb-importer/src/main/java/org/eclipse/steady/kb/task/ImportAffectedLibraries.java b/kb-importer/src/main/java/org/eclipse/steady/kb/task/ImportAffectedLibraries.java
index 9a047bb84..0b1a2a564 100755
--- a/kb-importer/src/main/java/org/eclipse/steady/kb/task/ImportAffectedLibraries.java
+++ b/kb-importer/src/main/java/org/eclipse/steady/kb/task/ImportAffectedLibraries.java
@@ -46,6 +46,7 @@
*/
public class ImportAffectedLibraries implements Task {
private static final String OVERWRITE_OPTION = "o";
+ private static final String DELETE = "del";
private static final Logger log = org.apache.logging.log4j.LogManager.getLogger();
/** {@inheritDoc} */
@@ -56,6 +57,9 @@ public void execute(
if (artifacts == null || artifacts.isEmpty()) {
return;
}
+ if ((boolean) args.get(DELETE)) {
+ backendConnector.deletePatchEvalResults(vuln.getVulnId(), AffectedVersionSource.KAYBEE);
+ }
List affectedLibsToUpsert = new ArrayList();
HashSet ciaArtifactsCache = new HashSet<>();
diff --git a/kb-importer/src/main/java/org/eclipse/steady/kb/task/ImportVulnerability.java b/kb-importer/src/main/java/org/eclipse/steady/kb/task/ImportVulnerability.java
index afc612fa7..ad7554efe 100755
--- a/kb-importer/src/main/java/org/eclipse/steady/kb/task/ImportVulnerability.java
+++ b/kb-importer/src/main/java/org/eclipse/steady/kb/task/ImportVulnerability.java
@@ -56,6 +56,7 @@ public class ImportVulnerability implements Task {
private static final String OVERWRITE_OPTION = "o";
private static final String DIRECTORY_OPTION = "d";
private static final String VERBOSE_OPTION = "v";
+ private static final String DELETE = "del";
private static final Logger log = org.apache.logging.log4j.LogManager.getLogger();
private BackendConnector backendConnector = null;
@@ -67,10 +68,9 @@ public void execute(
String vulnId = vuln.getVulnId();
this.backendConnector = _backendConnector;
- Boolean overwrite = (Boolean) args.get(OVERWRITE_OPTION);
- if (!overwrite && getBackendConnector().isBugExisting(vulnId)) {
- log.info("Bug [{}] already exists in backend, analysis will be skipped", vulnId);
- return;
+ if ((boolean) args.get(DELETE)) {
+ backendConnector.deleteBug(vuln.getVulnId());
+ log.info(vuln.getVulnId());
}
List commits = new ArrayList();
diff --git a/lang/src/main/java/org/eclipse/steady/backend/BackendConnector.java b/lang/src/main/java/org/eclipse/steady/backend/BackendConnector.java
index be798a3e2..0671a9746 100755
--- a/lang/src/main/java/org/eclipse/steady/backend/BackendConnector.java
+++ b/lang/src/main/java/org/eclipse/steady/backend/BackendConnector.java
@@ -1041,6 +1041,22 @@ public void uploadChangeList(String _bug, String _json) throws BackendConnection
req_list.send();
}
+ /**
+ * deleteBug.
+ *
+ * @param _bugId a {@link java.lang.String} object.
+ * @throws org.eclipse.steady.backend.BackendConnectionException if any.
+ */
+ public void deleteBug(String _bugId) throws BackendConnectionException {
+
+ final BasicHttpRequest del_req =
+ new BasicHttpRequest(HttpMethod.DELETE,
+ PathBuilder.bug(_bugId));
+ // payload cannot be empty otherwise request doesn t work
+ del_req.setPayload("[]", "application/json", true);
+ del_req.send();
+ }
+
/**
* uploadCheckVersionResults.
*
From 1a6297e858674abce05536bf81eb43733cdbf352 Mon Sep 17 00:00:00 2001
From: Pedro GALVAO
Date: Wed, 30 Mar 2022 15:37:33 +0200
Subject: [PATCH 02/83] Fixed small mistakes
---
.../src/main/java/org/eclipse/steady/kb/command/Import.java | 2 ++
.../java/org/eclipse/steady/kb/task/ImportVulnerability.java | 1 -
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/kb-importer/src/main/java/org/eclipse/steady/kb/command/Import.java b/kb-importer/src/main/java/org/eclipse/steady/kb/command/Import.java
index f22b199c9..3e4d22f4c 100755
--- a/kb-importer/src/main/java/org/eclipse/steady/kb/command/Import.java
+++ b/kb-importer/src/main/java/org/eclipse/steady/kb/command/Import.java
@@ -38,6 +38,7 @@
import org.eclipse.steady.kb.util.Metadata;
import org.eclipse.steady.shared.util.FileUtil;
import org.eclipse.steady.shared.util.VulasConfiguration;
+import org.eclipse.steady.backend.BackendConnectionException;
/**
* import command
@@ -49,6 +50,7 @@ public class Import implements Command {
private static final String DIRECTORY_OPTION = "d";
private static final String OVERWRITE_OPTION = "o";
private static final String VERBOSE_OPTION = "v";
+ private static final String DELETE = "del";
private static final String UPLOAD_LONG_OPTION = "upload";
private static final String VERBOSE_LONG_OPTION = "verbose";
diff --git a/kb-importer/src/main/java/org/eclipse/steady/kb/task/ImportVulnerability.java b/kb-importer/src/main/java/org/eclipse/steady/kb/task/ImportVulnerability.java
index ad7554efe..670cc5102 100755
--- a/kb-importer/src/main/java/org/eclipse/steady/kb/task/ImportVulnerability.java
+++ b/kb-importer/src/main/java/org/eclipse/steady/kb/task/ImportVulnerability.java
@@ -70,7 +70,6 @@ public void execute(
if ((boolean) args.get(DELETE)) {
backendConnector.deleteBug(vuln.getVulnId());
- log.info(vuln.getVulnId());
}
List commits = new ArrayList();
From 94597d5234ce0f09566c4101a576808bc553d923 Mon Sep 17 00:00:00 2001
From: Pedro GALVAO
Date: Wed, 30 Mar 2022 17:33:50 +0200
Subject: [PATCH 03/83] check if hashmap contains key
---
.../org/eclipse/steady/kb/task/ImportAffectedLibraries.java | 2 +-
.../java/org/eclipse/steady/kb/task/ImportVulnerability.java | 5 ++++-
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/kb-importer/src/main/java/org/eclipse/steady/kb/task/ImportAffectedLibraries.java b/kb-importer/src/main/java/org/eclipse/steady/kb/task/ImportAffectedLibraries.java
index 0b1a2a564..9aff36f40 100755
--- a/kb-importer/src/main/java/org/eclipse/steady/kb/task/ImportAffectedLibraries.java
+++ b/kb-importer/src/main/java/org/eclipse/steady/kb/task/ImportAffectedLibraries.java
@@ -57,7 +57,7 @@ public void execute(
if (artifacts == null || artifacts.isEmpty()) {
return;
}
- if ((boolean) args.get(DELETE)) {
+ if (args.containsKey(DELETE) && (boolean) args.get(DELETE)) {
backendConnector.deletePatchEvalResults(vuln.getVulnId(), AffectedVersionSource.KAYBEE);
}
diff --git a/kb-importer/src/main/java/org/eclipse/steady/kb/task/ImportVulnerability.java b/kb-importer/src/main/java/org/eclipse/steady/kb/task/ImportVulnerability.java
index 670cc5102..0fe815553 100755
--- a/kb-importer/src/main/java/org/eclipse/steady/kb/task/ImportVulnerability.java
+++ b/kb-importer/src/main/java/org/eclipse/steady/kb/task/ImportVulnerability.java
@@ -68,8 +68,11 @@ public void execute(
String vulnId = vuln.getVulnId();
this.backendConnector = _backendConnector;
- if ((boolean) args.get(DELETE)) {
+ if (args.containsKey(DELETE) && (boolean) args.get(DELETE)) {
backendConnector.deleteBug(vuln.getVulnId());
+ } else if (backendConnector.isBugExisting(vuln.getVulnId())) {
+ log.info("Bug [{}] already exists in backend, analysis will be skipped", vuln.getVulnId());
+ return;
}
List commits = new ArrayList();
From 764cef9f8f72cdebf760564c4de5783806446a86 Mon Sep 17 00:00:00 2001
From: Pedro GALVAO
Date: Tue, 5 Apr 2022 16:30:40 +0200
Subject: [PATCH 04/83] Fixed code style
---
java-files.txt | 597 ++++++++++++++++++
.../org/eclipse/steady/kb/command/Import.java | 8 +-
.../steady/backend/BackendConnector.java | 3 +-
non-compliant-files.txt | 0
4 files changed, 601 insertions(+), 7 deletions(-)
create mode 100644 java-files.txt
create mode 100644 non-compliant-files.txt
diff --git a/java-files.txt b/java-files.txt
new file mode 100644
index 000000000..80eb1aadb
--- /dev/null
+++ b/java-files.txt
@@ -0,0 +1,597 @@
+shared/src/main/java/org/eclipse/steady/shared/enums/ConstructChangeType.java
+shared/src/main/java/org/eclipse/steady/shared/enums/PropertySource.java
+shared/src/main/java/org/eclipse/steady/shared/enums/CoverageStatus.java
+shared/src/main/java/org/eclipse/steady/shared/enums/BugOrigin.java
+shared/src/main/java/org/eclipse/steady/shared/enums/GoalClient.java
+shared/src/main/java/org/eclipse/steady/shared/enums/PathSource.java
+shared/src/main/java/org/eclipse/steady/shared/enums/ExportFormat.java
+shared/src/main/java/org/eclipse/steady/shared/enums/Scope.java
+shared/src/main/java/org/eclipse/steady/shared/enums/package-info.java
+shared/src/main/java/org/eclipse/steady/shared/enums/ExportConfiguration.java
+shared/src/main/java/org/eclipse/steady/shared/enums/ConstructType.java
+shared/src/main/java/org/eclipse/steady/shared/enums/GoalType.java
+shared/src/main/java/org/eclipse/steady/shared/enums/ContentMaturityLevel.java
+shared/src/main/java/org/eclipse/steady/shared/enums/AffectedVersionSource.java
+shared/src/main/java/org/eclipse/steady/shared/enums/DigestAlgorithm.java
+shared/src/main/java/org/eclipse/steady/shared/enums/ProgrammingLanguage.java
+shared/src/main/java/org/eclipse/steady/shared/enums/DependencyOrigin.java
+shared/src/main/java/org/eclipse/steady/shared/enums/VulnDepOrigin.java
+shared/src/main/java/org/eclipse/steady/shared/cache/Cache.java
+shared/src/main/java/org/eclipse/steady/shared/cache/ObjectFetcher.java
+shared/src/main/java/org/eclipse/steady/shared/cache/CacheException.java
+shared/src/main/java/org/eclipse/steady/shared/package-info.java
+shared/src/main/java/org/eclipse/steady/shared/util/DependencyUtil.java
+shared/src/main/java/org/eclipse/steady/shared/util/AbstractFileSearch.java
+shared/src/main/java/org/eclipse/steady/shared/util/DirnamePatternSearch.java
+shared/src/main/java/org/eclipse/steady/shared/util/FileSearch.java
+shared/src/main/java/org/eclipse/steady/shared/util/MemoryMonitor.java
+shared/src/main/java/org/eclipse/steady/shared/util/CollectionUtil.java
+shared/src/main/java/org/eclipse/steady/shared/util/Constants.java
+shared/src/main/java/org/eclipse/steady/shared/util/FileUtil.java
+shared/src/main/java/org/eclipse/steady/shared/util/package-info.java
+shared/src/main/java/org/eclipse/steady/shared/util/ThreadUtil.java
+shared/src/main/java/org/eclipse/steady/shared/util/StringUtil.java
+shared/src/main/java/org/eclipse/steady/shared/util/FilenamePatternSearch.java
+shared/src/main/java/org/eclipse/steady/shared/util/DigestUtil.java
+shared/src/main/java/org/eclipse/steady/shared/util/StopWatch.java
+shared/src/main/java/org/eclipse/steady/shared/util/DirWithFileSearch.java
+shared/src/main/java/org/eclipse/steady/shared/util/DirUtil.java
+shared/src/main/java/org/eclipse/steady/shared/util/ConstructIdUtil.java
+shared/src/main/java/org/eclipse/steady/shared/util/ProgressTracker.java
+shared/src/main/java/org/eclipse/steady/shared/util/VulasConfiguration.java
+shared/src/main/java/org/eclipse/steady/shared/util/StringList.java
+shared/src/main/java/org/eclipse/steady/shared/json/JsonBuilder.java
+shared/src/main/java/org/eclipse/steady/shared/json/JsonWriter.java
+shared/src/main/java/org/eclipse/steady/shared/json/JacksonUtil.java
+shared/src/main/java/org/eclipse/steady/shared/json/JsonSyntaxException.java
+shared/src/main/java/org/eclipse/steady/shared/json/JsonReader.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/ConstructId.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/ConstructChange.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/ConstructIdFilter.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/IExemption.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/Trace.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/diff/ClassModification.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/diff/ClassDiffResult.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/diff/JarDiffResult.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/Space.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/AffectedConstructChange.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/Application.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/ExemptionSet.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/ExemptionUnassessed.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/Bug.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/ConstructChangeInDependency.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/package-info.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/Version.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/FileChange.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/Artifact.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/VulnerableDependency.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/Library.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/mavenCentral/ResponseDoc.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/mavenCentral/MavenVersionsSearch.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/mavenCentral/MavenSearchResponse.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/KeyValue.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/Tenant.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/ExemptionBug.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/AffectedLibrary.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/PathNode.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/ExemptionScope.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/Property.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/view/Views.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/metrics/Percentage.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/metrics/package-info.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/metrics/Metrics.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/metrics/AbstractMetric.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/metrics/Counter.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/metrics/Ratio.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/LibraryId.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/Dependency.java
+shared/src/main/java/org/eclipse/steady/shared/connectivity/Service.java
+shared/src/main/java/org/eclipse/steady/shared/connectivity/PathBuilder.java
+shared/src/main/java/org/eclipse/steady/shared/connectivity/ServiceConnectionException.java
+shared/src/main/java/org/eclipse/steady/shared/connectivity/package-info.java
+lang/src/main/java/org/eclipse/steady/ConstructId.java
+lang/src/main/java/org/eclipse/steady/ConstructChange.java
+lang/src/main/java/org/eclipse/steady/malice/ZipSlipAnalyzer.java
+lang/src/main/java/org/eclipse/steady/malice/MaliciousnessAnalyzerLoop.java
+lang/src/main/java/org/eclipse/steady/malice/MaliciousnessAnalysisResult.java
+lang/src/main/java/org/eclipse/steady/malice/MaliciousnessAnalyzer.java
+lang/src/main/java/org/eclipse/steady/Construct.java
+lang/src/main/java/org/eclipse/steady/backend/HttpMethod.java
+lang/src/main/java/org/eclipse/steady/backend/HttpResponse.java
+lang/src/main/java/org/eclipse/steady/backend/EntityNotFoundInBackendException.java
+lang/src/main/java/org/eclipse/steady/backend/requests/PutLibraryCondition.java
+lang/src/main/java/org/eclipse/steady/backend/requests/RequestRepeater.java
+lang/src/main/java/org/eclipse/steady/backend/requests/AbstractHttpRequest.java
+lang/src/main/java/org/eclipse/steady/backend/requests/ContentCondition.java
+lang/src/main/java/org/eclipse/steady/backend/requests/StatusCondition.java
+lang/src/main/java/org/eclipse/steady/backend/requests/HttpRequestList.java
+lang/src/main/java/org/eclipse/steady/backend/requests/package-info.java
+lang/src/main/java/org/eclipse/steady/backend/requests/ResponseCondition.java
+lang/src/main/java/org/eclipse/steady/backend/requests/HttpRequest.java
+lang/src/main/java/org/eclipse/steady/backend/requests/ConditionalHttpRequest.java
+lang/src/main/java/org/eclipse/steady/backend/requests/BasicHttpRequest.java
+lang/src/main/java/org/eclipse/steady/backend/BackendConnectionException.java
+lang/src/main/java/org/eclipse/steady/backend/BackendConnector.java
+lang/src/main/java/org/eclipse/steady/DirAnalyzer.java
+lang/src/main/java/org/eclipse/steady/FileAnalyzer.java
+lang/src/main/java/org/eclipse/steady/FileAnalyzerFactory.java
+lang/src/main/java/org/eclipse/steady/FileAnalysisException.java
+lang/src/main/java/org/eclipse/steady/core/util/SignatureConfiguration.java
+lang/src/main/java/org/eclipse/steady/core/util/package-info.java
+lang/src/main/java/org/eclipse/steady/core/util/CoreConfiguration.java
+lang/src/main/java/org/eclipse/steady/tasks/ReachTask.java
+lang/src/main/java/org/eclipse/steady/tasks/package-info.java
+lang/src/main/java/org/eclipse/steady/tasks/AbstractTask.java
+lang/src/main/java/org/eclipse/steady/tasks/AbstractBomTask.java
+lang/src/main/java/org/eclipse/steady/tasks/Task.java
+lang/src/main/java/org/eclipse/steady/tasks/BomTask.java
+lang/src/main/java/org/eclipse/steady/sign/Signature.java
+lang/src/main/java/org/eclipse/steady/sign/SignatureComparator.java
+lang/src/main/java/org/eclipse/steady/sign/SignatureAnalysis.java
+lang/src/main/java/org/eclipse/steady/sign/SignatureChange.java
+lang/src/main/java/org/eclipse/steady/sign/SignatureFactory.java
+lang/src/main/java/org/eclipse/steady/report/Report.java
+lang/src/main/java/org/eclipse/steady/goals/AbstractGoal.java
+lang/src/main/java/org/eclipse/steady/goals/SpaceModGoal.java
+lang/src/main/java/org/eclipse/steady/goals/SpaceDelGoal.java
+lang/src/main/java/org/eclipse/steady/goals/ReportException.java
+lang/src/main/java/org/eclipse/steady/goals/SpaceCleanGoal.java
+lang/src/main/java/org/eclipse/steady/goals/CleanGoal.java
+lang/src/main/java/org/eclipse/steady/goals/GoalExecutor.java
+lang/src/main/java/org/eclipse/steady/goals/BomGoal.java
+lang/src/main/java/org/eclipse/steady/goals/AbstractAppGoal.java
+lang/src/main/java/org/eclipse/steady/goals/TestGoal.java
+lang/src/main/java/org/eclipse/steady/goals/package-info.java
+lang/src/main/java/org/eclipse/steady/goals/SequenceGoal.java
+lang/src/main/java/org/eclipse/steady/goals/SpaceNewGoal.java
+lang/src/main/java/org/eclipse/steady/goals/GoalExecutionException.java
+lang/src/main/java/org/eclipse/steady/goals/ExecutionObserver.java
+lang/src/main/java/org/eclipse/steady/goals/GoalConfigurationException.java
+lang/src/main/java/org/eclipse/steady/goals/GoalFactory.java
+lang/src/main/java/org/eclipse/steady/goals/UploadGoal.java
+lang/src/main/java/org/eclipse/steady/goals/GoalContext.java
+lang/src/main/java/org/eclipse/steady/goals/ReportGoal.java
+lang/src/main/java/org/eclipse/steady/goals/CheckverGoal.java
+lang/src/main/java/org/eclipse/steady/goals/AbstractSpaceGoal.java
+lang-java/src/main/java/org/eclipse/steady/java/ClassFileAnalyzer.java
+lang-java/src/main/java/org/eclipse/steady/java/AarAnalyzer.java
+lang-java/src/main/java/org/eclipse/steady/java/JavaClassInit.java
+lang-java/src/main/java/org/eclipse/steady/java/JavaClassId.java
+lang-java/src/main/java/org/eclipse/steady/java/PomParser.java
+lang-java/src/main/java/org/eclipse/steady/java/JavaConstructorId.java
+lang-java/src/main/java/org/eclipse/steady/java/JavaMethodId.java
+lang-java/src/main/java/org/eclipse/steady/java/JavaId.java
+lang-java/src/main/java/org/eclipse/steady/java/JavaEnumId.java
+lang-java/src/main/java/org/eclipse/steady/java/WarAnalyzer.java
+lang-java/src/main/java/org/eclipse/steady/java/JarWriter.java
+lang-java/src/main/java/org/eclipse/steady/java/JarAnalysisException.java
+lang-java/src/main/java/org/eclipse/steady/java/SpringBootAnalyzer.java
+lang-java/src/main/java/org/eclipse/steady/java/JarEntryWriter.java
+lang-java/src/main/java/org/eclipse/steady/java/JavaPackageId.java
+lang-java/src/main/java/org/eclipse/steady/java/tasks/package-info.java
+lang-java/src/main/java/org/eclipse/steady/java/tasks/JavaBomTask.java
+lang-java/src/main/java/org/eclipse/steady/java/sign/ASTSignature.java
+lang-java/src/main/java/org/eclipse/steady/java/sign/gson/ASTConstructBodySignatureDeserializer.java
+lang-java/src/main/java/org/eclipse/steady/java/sign/gson/GsonHelper.java
+lang-java/src/main/java/org/eclipse/steady/java/sign/gson/ASTSignatureDeserializer.java
+lang-java/src/main/java/org/eclipse/steady/java/sign/gson/ASTSignatureChangeDeserializer.java
+lang-java/src/main/java/org/eclipse/steady/java/sign/gson/ASTSignatureChangeSerializer.java
+lang-java/src/main/java/org/eclipse/steady/java/sign/gson/package-info.java
+lang-java/src/main/java/org/eclipse/steady/java/sign/gson/ASTConstructBodySignatureSerializer.java
+lang-java/src/main/java/org/eclipse/steady/java/sign/ASTSignatureComparator.java
+lang-java/src/main/java/org/eclipse/steady/java/sign/CompilationUtils.java
+lang-java/src/main/java/org/eclipse/steady/java/sign/ASTSignatureChange.java
+lang-java/src/main/java/org/eclipse/steady/java/sign/package-info.java
+lang-java/src/main/java/org/eclipse/steady/java/sign/JavaSignatureFactory.java
+lang-java/src/main/java/org/eclipse/steady/java/sign/UniqueNameNormalizer.java
+lang-java/src/main/java/org/eclipse/steady/java/sign/ASTConstructBodySignature.java
+lang-java/src/main/java/org/eclipse/steady/java/sign/ASTUtil.java
+lang-java/src/main/java/org/eclipse/steady/java/sign/DistillerUtil.java
+lang-java/src/main/java/org/eclipse/steady/java/JarAnalyzer.java
+lang-java/src/main/java/org/eclipse/steady/java/JavaInterfaceId.java
+lang-java/src/main/java/org/eclipse/steady/java/goals/InstrGoal.java
+lang-java/src/main/java/org/eclipse/steady/java/goals/CheckBytecodeGoal.java
+lang-java/src/main/java/org/eclipse/steady/java/bytecode/BytecodeComparator.java
+lang-java/src/main/java/org/eclipse/steady/java/bytecode/ConstructBytecodeASTManager.java
+lang-java/src/main/java/org/eclipse/steady/java/JavaFileAnalyzer2.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/IInstrumentor.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/slice/SliceInstrumentor.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/touch/TouchPointCollector.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/touch/TouchPointInstrumentor.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/touch/ConstructIdUtil.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/ExecutionMonitor.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/InstrumentationControl.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/InstrumentorFactory.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/ClassPoolUpdater.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/UploadScheduler.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/trace/ConstructUsage.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/trace/StackTraceUtil.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/trace/TraceCollector.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/trace/StackTraceInstrumentor.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/trace/AbstractTraceInstrumentor.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/trace/SingleStackTraceInstrumentor.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/trace/PathNode.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/trace/SingleTraceInstrumentor.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/ClassNameLoaderFilter.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/LoaderHierarchy.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/LoaderFilter.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/Loader.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/AbstractInstrumentor.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/ClassVisitor.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/DynamicTransformer.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/PrintlnInstrumentor.java
+lang-java/src/main/java/org/eclipse/steady/java/decompiler/IDecompiler.java
+lang-java/src/main/java/org/eclipse/steady/java/decompiler/ProcyonDecompiler.java
+lang-java/src/main/java/org/eclipse/steady/java/ArchiveAnalysisManager.java
+lang-java-reach/src/main/java/org/eclipse/steady/cg/ReachabilityAnalyzer.java
+lang-java-reach/src/main/java/org/eclipse/steady/cg/CallgraphReachableSearch.java
+lang-java-reach/src/main/java/org/eclipse/steady/cg/AbstractReachGoal.java
+lang-java-reach/src/main/java/org/eclipse/steady/cg/NodeMetaInformation.java
+lang-java-reach/src/main/java/org/eclipse/steady/cg/spi/CallgraphConstructorFactory.java
+lang-java-reach/src/main/java/org/eclipse/steady/cg/spi/ICallgraphConstructor.java
+lang-java-reach/src/main/java/org/eclipse/steady/cg/T2CGoal.java
+lang-java-reach/src/main/java/org/eclipse/steady/cg/PrunedGraphGetPaths.java
+lang-java-reach/src/main/java/org/eclipse/steady/cg/Callgraph.java
+lang-java-reach/src/main/java/org/eclipse/steady/cg/MethodNameFilter.java
+lang-java-reach/src/main/java/org/eclipse/steady/cg/DepthFirstGetPaths.java
+lang-java-reach/src/main/java/org/eclipse/steady/cg/A2CGoal.java
+lang-java-reach/src/main/java/org/eclipse/steady/cg/CallgraphPathSearch.java
+lang-java-reach/src/main/java/org/eclipse/steady/cg/ReachabilityConfiguration.java
+lang-java-reach/src/main/java/org/eclipse/steady/cg/AbstractGetPaths.java
+lang-java-reach/src/main/java/org/eclipse/steady/cg/CallgraphConstructException.java
+lang-java-reach/src/main/java/org/eclipse/steady/cg/PathSimilarity.java
+lang-java-reach-wala/src/main/java/org/eclipse/steady/cg/wala/WalaCallgraphConstructor.java
+lang-java-reach-soot/src/main/java/org/eclipse/steady/cg/soot/SootConfiguration.java
+lang-java-reach-soot/src/main/java/org/eclipse/steady/cg/soot/CustomEntryPointCreator.java
+lang-java-reach-soot/src/main/java/org/eclipse/steady/cg/soot/SootCallgraphConstructor.java
+lang-python/src/main/java/org/eclipse/steady/python/virtualenv/VirtualenvWrapper.java
+lang-python/src/main/java/org/eclipse/steady/python/virtualenv/package-info.java
+lang-python/src/main/java/org/eclipse/steady/python/Python3FileAnalyzer.java
+lang-python/src/main/java/org/eclipse/steady/python/PythonId.java
+lang-python/src/main/java/org/eclipse/steady/python/PythonFileAnalyzer.java
+lang-python/src/main/java/org/eclipse/steady/python/ProcessWrapperException.java
+lang-python/src/main/java/org/eclipse/steady/python/utils/PythonConfiguration.java
+lang-python/src/main/java/org/eclipse/steady/python/pip/PyWrapper.java
+lang-python/src/main/java/org/eclipse/steady/python/pip/package-info.java
+lang-python/src/main/java/org/eclipse/steady/python/pip/PipInstalledPackage.java
+lang-python/src/main/java/org/eclipse/steady/python/pip/PipWrapper.java
+lang-python/src/main/java/org/eclipse/steady/python/PythonArchiveAnalyzer.java
+lang-python/src/main/java/org/eclipse/steady/python/tasks/package-info.java
+lang-python/src/main/java/org/eclipse/steady/python/tasks/PythonBomTask.java
+lang-python/src/main/java/org/eclipse/steady/python/sign/PythonConstructDigestDeserializer.java
+lang-python/src/main/java/org/eclipse/steady/python/sign/PythonSignatureFactory.java
+lang-python/src/main/java/org/eclipse/steady/python/sign/PythonConstructDigest.java
+lang-python/src/main/java/org/eclipse/steady/python/sign/PythonConstructDigestSerializer.java
+lang-python/src/main/java/org/eclipse/steady/python/Python335FileAnalyzer.java
+lang-python/src/main/java/org/eclipse/steady/python/ProcessWrapper.java
+repo-client/src/main/java/org/eclipse/steady/git/GitClient.java
+repo-client/src/main/java/org/eclipse/steady/git/MyProxySelector.java
+repo-client/src/main/java/org/eclipse/steady/package-info.java
+repo-client/src/main/java/org/eclipse/steady/vcs/NoRepoClientException.java
+repo-client/src/main/java/org/eclipse/steady/vcs/RepoMismatchException.java
+repo-client/src/main/java/org/eclipse/steady/vcs/IVCSClient.java
+repo-client/src/main/java/org/eclipse/steady/vcs/FileChange.java
+repo-client/src/main/java/org/eclipse/steady/svn/SvnClient.java
+patch-analyzer/src/main/java/org/eclipse/steady/patcha/PatchAnalyzer.java
+patch-analyzer/src/main/java/org/eclipse/steady/patcha/PatchaConfiguration.java
+patch-analyzer/src/main/java/org/eclipse/steady/patcha/FileComparator.java
+patch-analyzer/src/main/java/org/eclipse/steady/patcha/VulasProxySelector.java
+patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/ByteCodeComparator.java
+patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/Main.java
+patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/BugLibAnalyzer.java
+patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/BytecodeAnalyzer.java
+patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/utils/PEConfiguration.java
+patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/utils/CSVHelper2.java
+patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/LibraryAnalyzerThread2.java
+patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/representation/ConstructPathLibResult2.java
+patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/representation/ArtifactLibrary.java
+patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/representation/Intersection2.java
+patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/representation/ArtifactResult2.java
+patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/representation/ConstructPathAssessment2.java
+patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/representation/OverallConstructChange.java
+patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/representation/OrderedCCperConstructPath2.java
+patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/representation/ReleaseTree.java
+patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/representation/LidResult2.java
+patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/PE_Run.java
+patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/BugLibManager.java
+kb-importer/src/main/java/org/eclipse/steady/kb/Main.java
+kb-importer/src/main/java/org/eclipse/steady/kb/command/Help.java
+kb-importer/src/main/java/org/eclipse/steady/kb/command/CommandParser.java
+kb-importer/src/main/java/org/eclipse/steady/kb/command/Command.java
+kb-importer/src/main/java/org/eclipse/steady/kb/command/Version.java
+kb-importer/src/main/java/org/eclipse/steady/kb/command/CommandExecutor.java
+kb-importer/src/main/java/org/eclipse/steady/kb/command/Import.java
+kb-importer/src/main/java/org/eclipse/steady/kb/util/Metadata.java
+kb-importer/src/main/java/org/eclipse/steady/kb/util/FileComparator.java
+kb-importer/src/main/java/org/eclipse/steady/kb/util/ConstructSet.java
+kb-importer/src/main/java/org/eclipse/steady/kb/task/ImportAffectedLibraries.java
+kb-importer/src/main/java/org/eclipse/steady/kb/task/ImportVulnerability.java
+kb-importer/src/main/java/org/eclipse/steady/kb/task/TaskProvider.java
+kb-importer/src/main/java/org/eclipse/steady/kb/task/Task.java
+kb-importer/src/main/java/org/eclipse/steady/kb/exception/CommandLineParserException.java
+kb-importer/src/main/java/org/eclipse/steady/kb/exception/ValidationException.java
+kb-importer/src/main/java/org/eclipse/steady/kb/model/Commit.java
+kb-importer/src/main/java/org/eclipse/steady/kb/model/Artifact.java
+kb-importer/src/main/java/org/eclipse/steady/kb/model/Vulnerability.java
+kb-importer/src/main/java/org/eclipse/steady/kb/model/Note.java
+cli-scanner/src/main/java/org/eclipse/steady/cli/package-info.java
+cli-scanner/src/main/java/org/eclipse/steady/cli/VulasCli.java
+plugin-maven/src/main/java/org/eclipse/steady/java/mvn/MvnPluginClean.java
+plugin-maven/src/main/java/org/eclipse/steady/java/mvn/VulasAgentMojo.java
+plugin-maven/src/main/java/org/eclipse/steady/java/mvn/MvnPluginT2C.java
+plugin-maven/src/main/java/org/eclipse/steady/java/mvn/MvnPluginUpload.java
+plugin-maven/src/main/java/org/eclipse/steady/java/mvn/AbstractVulasMojo.java
+plugin-maven/src/main/java/org/eclipse/steady/java/mvn/MvnPluginSpaceClean.java
+plugin-maven/src/main/java/org/eclipse/steady/java/mvn/MvnPluginA2C.java
+plugin-maven/src/main/java/org/eclipse/steady/java/mvn/MvnPluginBom.java
+plugin-maven/src/main/java/org/eclipse/steady/java/mvn/MvnPluginCheckBytecode.java
+plugin-maven/src/main/java/org/eclipse/steady/java/mvn/MvnPluginInstr.java
+plugin-maven/src/main/java/org/eclipse/steady/java/mvn/MvnPluginReport.java
+plugin-maven/src/main/java/org/eclipse/steady/java/mvn/AbstractVulasSpaceMojo.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/rest/MainController.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/rest/ConstructController.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/rest/ClassController.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/rest/ConfigurationController.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/rest/ArtifactController.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/package-info.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/util/RepositoryWrapper.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/util/MavenCentralWrapper.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/util/CacheFilter.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/util/RepositoryDispatcher.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/util/PypiWrapper.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/util/RepoException.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/util/ClassDownloader.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/util/NexusWrapper.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/util/FileAnalyzerFetcher.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/util/HeaderEcho.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/util/ArtifactDownloader.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/nexus/NexusDescribeInfo.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/nexus/NexusResponse.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/nexus/NexusSearchNGResponse.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/nexus/NexusResolvedArtifact.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/nexus/NexusArtifactInfoResourceResponse.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/nexus/NexusNGData.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/nexus/NexusArtifactResolution.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/nexus/NexusArtifact.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/nexus/NexusLibId.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/nexus/NexusSearch.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/nexus/NexusData.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/pypi/PypiRelease.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/pypi/PypiInfo.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/pypi/PypiResponse.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/dependencyfinder/JarDiffCmd.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/dependencyfinder/JarDiffVisitor.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/dependencyfinder/ClassDiffVisitor.java
+rest-backend/src/main/java/org/eclipse/steady/backend/rest/MainController.java
+rest-backend/src/main/java/org/eclipse/steady/backend/rest/SpaceController.java
+rest-backend/src/main/java/org/eclipse/steady/backend/rest/CveController.java
+rest-backend/src/main/java/org/eclipse/steady/backend/rest/ApplicationController.java
+rest-backend/src/main/java/org/eclipse/steady/backend/rest/CoverageController.java
+rest-backend/src/main/java/org/eclipse/steady/backend/rest/LibraryIdController.java
+rest-backend/src/main/java/org/eclipse/steady/backend/rest/LibraryController.java
+rest-backend/src/main/java/org/eclipse/steady/backend/rest/TenantController.java
+rest-backend/src/main/java/org/eclipse/steady/backend/rest/BugController.java
+rest-backend/src/main/java/org/eclipse/steady/backend/rest/HubIntegrationController.java
+rest-backend/src/main/java/org/eclipse/steady/backend/rest/ConfigurationController.java
+rest-backend/src/main/java/org/eclipse/steady/backend/package-info.java
+rest-backend/src/main/java/org/eclipse/steady/backend/util/MavenCentralVerifier.java
+rest-backend/src/main/java/org/eclipse/steady/backend/util/ReferenceUpdater.java
+rest-backend/src/main/java/org/eclipse/steady/backend/util/PyPiVerifier.java
+rest-backend/src/main/java/org/eclipse/steady/backend/util/DependencyUtil.java
+rest-backend/src/main/java/org/eclipse/steady/backend/util/TokenUtil.java
+rest-backend/src/main/java/org/eclipse/steady/backend/util/CacheFilter.java
+rest-backend/src/main/java/org/eclipse/steady/backend/util/Message.java
+rest-backend/src/main/java/org/eclipse/steady/backend/util/ArtifactMaps.java
+rest-backend/src/main/java/org/eclipse/steady/backend/util/DigestVerifier.java
+rest-backend/src/main/java/org/eclipse/steady/backend/util/ServiceWrapper.java
+rest-backend/src/main/java/org/eclipse/steady/backend/util/ResultSetFilter.java
+rest-backend/src/main/java/org/eclipse/steady/backend/util/SmtpClient.java
+rest-backend/src/main/java/org/eclipse/steady/backend/util/VerificationException.java
+rest-backend/src/main/java/org/eclipse/steady/backend/util/ConnectionUtil.java
+rest-backend/src/main/java/org/eclipse/steady/backend/util/DigestVerifierEnumerator.java
+rest-backend/src/main/java/org/eclipse/steady/backend/cve/Cve.java
+rest-backend/src/main/java/org/eclipse/steady/backend/cve/CveReader2.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/ConstructId.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/DependencyUpdate.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/Path.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/ConstructChangeType.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/ConstructChange.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/ConstructIdFilter.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/DependencyIntersection.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/TouchPoint.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/Trace.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/Space.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/AffectedConstructChange.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/Application.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/PackageStatistics.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/Bug.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/ConstructChangeInDependency.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/GoalExecution.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/V_AppVulndep.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/VulnerableDependency.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/Library.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/ConstructSearchResult.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/Tenant.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/AffectedLibrary.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/PathNode.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/Property.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/view/Views.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/LibraryId.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/Dependency.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/TenantRepository.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/ApplicationRepositoryCustom.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/AffectedLibraryRepositoryCustom.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/ConstructIdRepository.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/TenantRepositoryCustom.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/ApplicationRepositoryImpl.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/LibraryIdRepository.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/LibraryRepositoryCustom.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/SpaceRepositoryCustom.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/AffectedLibraryRepositoryImpl.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/SpaceRepositoryImpl.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/PropertyRepository.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/BugRepositoryCustom.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/DependencyRepositoryImpl.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/BugRepository.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/V_AppVulndepRepository.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/TracesRepositoryCustom.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/PathRepository.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/PathRepositoryImpl.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/TracesRepositoryImpl.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/PathRepositoryCustom.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/ApplicationRepository.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/DependencyRepository.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/BugRepositoryImpl.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/GoalExecutionRepositoryImpl.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/AffectedLibraryRepository.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/LibraryRepository.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/GoalExecutionRepositoryCustom.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/LibraryRepositoryImpl.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/SpaceRepository.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/TenantRepositoryImpl.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/GoalExecutionRepository.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/DependencyRepositoryCustom.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/TracesRepository.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/ConstructChangeRepository.java
+rest-backend/src/main/java/org/eclipse/steady/backend/component/ApplicationExporter.java
+rest-backend/src/main/java/org/eclipse/steady/backend/component/StatisticsContributor.java
+rest-backend/src/main/java/org/eclipse/steady/backend/component/ApplicationExporterThread.java
+plugin-gradle/src/main/java/org/eclipse/steady/java/gradle/VulasPlugin.java
+plugin-gradle/src/main/java/org/eclipse/steady/java/gradle/GradlePluginClean.java
+plugin-gradle/src/main/java/org/eclipse/steady/java/gradle/GradlePluginReport.java
+plugin-gradle/src/main/java/org/eclipse/steady/java/gradle/GradlePluginA2C.java
+plugin-gradle/src/main/java/org/eclipse/steady/java/gradle/VulasPluginCommon.java
+plugin-gradle/src/main/java/org/eclipse/steady/java/gradle/GradleProjectUtilities.java
+plugin-gradle/src/main/java/org/eclipse/steady/java/gradle/GradlePluginApp.java
+plugin-gradle/src/main/java/org/eclipse/steady/java/gradle/AbstractVulasTask.java
+shared/src/test/java/org/eclipse/steady/shared/enums/ScopeTest.java
+shared/src/test/java/org/eclipse/steady/shared/cache/CacheTest.java
+shared/src/test/java/org/eclipse/steady/shared/util/FileSearchTest.java
+shared/src/test/java/org/eclipse/steady/shared/util/StringUtilTest.java
+shared/src/test/java/org/eclipse/steady/shared/util/StringListTest.java
+shared/src/test/java/org/eclipse/steady/shared/util/DigestUtilTest.java
+shared/src/test/java/org/eclipse/steady/shared/util/VulasConfigurationTest.java
+shared/src/test/java/org/eclipse/steady/shared/util/FileUtilTest.java
+shared/src/test/java/org/eclipse/steady/shared/util/StopWatchTest.java
+shared/src/test/java/org/eclipse/steady/shared/util/DirUtilTest.java
+shared/src/test/java/org/eclipse/steady/shared/util/TestDirWithFileSearch.java
+shared/src/test/java/org/eclipse/steady/shared/json/JsonBuilderTest.java
+shared/src/test/java/org/eclipse/steady/shared/json/JacksonUtilTest.java
+shared/src/test/java/org/eclipse/steady/shared/json/VulnerableDependencyJsonTest.java
+shared/src/test/java/org/eclipse/steady/shared/json/model/metrics/MetricsTest.java
+shared/src/test/java/org/eclipse/steady/shared/model/IExemptionTest.java
+shared/src/test/java/org/eclipse/steady/shared/model/ApplicationTest.java
+shared/src/test/java/org/eclipse/steady/shared/model/generic/VersionTest.java
+shared/src/test/java/org/eclipse/steady/shared/categories/RequiresNetwork.java
+shared/src/test/java/org/eclipse/steady/shared/categories/Integrated.java
+shared/src/test/java/org/eclipse/steady/shared/categories/Slow.java
+lang/src/test/java/org/eclipse/steady/malice/ZipSlipAnalyzerTest.java
+lang/src/test/java/org/eclipse/steady/malice/MaliciousnessAnalyzerLoopTest.java
+lang/src/test/java/org/eclipse/steady/report/ReportTest.java
+lang/src/test/java/org/eclipse/steady/goals/BomGoalTest.java
+lang/src/test/java/org/eclipse/steady/goals/SpaceDelGoalTest.java
+lang/src/test/java/org/eclipse/steady/goals/CleanGoalTest.java
+lang/src/test/java/org/eclipse/steady/goals/AbstractGoalTest.java
+lang/src/test/java/org/eclipse/steady/goals/SpaceNewGoalTest.java
+lang-java/src/test/java/ClassWithoutPackage.java
+lang-java/src/test/java/NestedDeclarationMess.java
+lang-java/src/test/java/org/eclipse/steady/java/WarAnalyzerTest.java
+lang-java/src/test/java/org/eclipse/steady/java/ClassFileAnalyzerTest.java
+lang-java/src/test/java/org/eclipse/steady/java/ArchiveAnalysisManagerTest.java
+lang-java/src/test/java/org/eclipse/steady/java/test/TestAnon.java
+lang-java/src/test/java/org/eclipse/steady/java/test/HttpRequestCompletionLog.java
+lang-java/src/test/java/org/eclipse/steady/java/test/EnumTest.java
+lang-java/src/test/java/org/eclipse/steady/java/test/Vanilla.java
+lang-java/src/test/java/org/eclipse/steady/java/test/ConfigKey.java
+lang-java/src/test/java/org/eclipse/steady/java/test/TestClass$NoNestedClass.java
+lang-java/src/test/java/org/eclipse/steady/java/test/DrinkEnumExample.java
+lang-java/src/test/java/org/eclipse/steady/java/test/Generics.java
+lang-java/src/test/java/org/eclipse/steady/java/test/TestInterface.java
+lang-java/src/test/java/org/eclipse/steady/java/test/NestedDeclarations.java
+lang-java/src/test/java/org/eclipse/steady/java/test/ConfigurationKey.java
+lang-java/src/test/java/org/eclipse/steady/java/test/HelloWorldAnonymousClasses.java
+lang-java/src/test/java/org/eclipse/steady/java/test/NestedDeclarationMess2.java
+lang-java/src/test/java/org/eclipse/steady/java/test/OuterClass.java
+lang-java/src/test/java/org/eclipse/steady/java/test/TestAgainAnon.java
+lang-java/src/test/java/org/eclipse/steady/java/JsonHelperTest.java
+lang-java/src/test/java/org/eclipse/steady/java/AarAnalyzerTest.java
+lang-java/src/test/java/org/eclipse/steady/java/SpringBootAnalyzerTest.java
+lang-java/src/test/java/org/eclipse/steady/java/ClassPoolUpdaterTest.java
+lang-java/src/test/java/org/eclipse/steady/java/JarAnalyzerTest.java
+lang-java/src/test/java/org/eclipse/steady/java/PomParserTest.java
+lang-java/src/test/java/org/eclipse/steady/java/JavaIdTest.java
+lang-java/src/test/java/org/eclipse/steady/java/JarWriterTest.java
+lang-java/src/test/java/org/eclipse/steady/java/sign/SignatureFactoryTest.java
+lang-java/src/test/java/org/eclipse/steady/java/sign/ASTSignatureComparatorTest.java
+lang-java/src/test/java/org/eclipse/steady/java/sign/gson/ASTDeserializeSignComparatorTest.java
+lang-java/src/test/java/org/eclipse/steady/java/sign/StringSimilarityLevenshtein.java
+lang-java/src/test/java/org/eclipse/steady/java/sign/UniqueNamePreprocessorTest.java
+lang-java/src/test/java/org/eclipse/steady/java/sign/StringSimilarityNGrams.java
+lang-java/src/test/java/org/eclipse/steady/java/sign/StringSimilarity.java
+lang-java/src/test/java/org/eclipse/steady/java/monitor/ClassVisitorTest.java
+lang-java/src/test/java/org/eclipse/steady/java/monitor/ConstructTransformerTest.java
+lang-java/src/test/java/org/eclipse/steady/java/monitor/AbstractGoalTest.java
+lang-java/src/test/java/org/eclipse/steady/java/JavaFileAnalyzer2Test.java
+lang-java/src/test/java/org/eclipse/steady/java/decompiler/IDecompilerTest.java
+lang-java-reach/src/test/java/org/eclipse/steady/cg/DummyCallgraphConstructor.java
+lang-java-reach/src/test/java/org/eclipse/steady/cg/CallgraphTest.java
+lang-java-reach/src/test/java/org/eclipse/steady/cg/CallgraphConstructorFactoryTest.java
+lang-java-reach/src/test/java/org/eclipse/steady/cg/Examples.java
+lang-java-reach-wala/src/test/java/org/eclipse/steady/cg/wala/WalaCallGraphTest.java
+lang-java-reach-soot/src/test/java/SootCallGraphTest.java
+lang-python/src/test/java/org/eclipse/steady/python/virtualenv/VirtualenvWrapperTest.java
+lang-python/src/test/java/org/eclipse/steady/python/pip/PipInstalledPackageTest.java
+lang-python/src/test/java/org/eclipse/steady/python/pip/PipWrapperTest.java
+lang-python/src/test/java/org/eclipse/steady/python/pip/PyWrapperTest.java
+lang-python/src/test/java/org/eclipse/steady/python/PythonArchiveAnalyzerTest.java
+lang-python/src/test/java/org/eclipse/steady/python/ProcessWrapperTest.java
+lang-python/src/test/java/org/eclipse/steady/python/PythonFileAnalyzerTest.java
+repo-client/src/test/java/org/eclipse/steady/git/GitTest.java
+patch-analyzer/src/test/java/org/eclipse/steady/patcha/IT01_PatchAnalyzerIT.java
+patch-analyzer/src/test/java/org/eclipse/steady/patcha/FileComparatorTest.java
+patch-lib-analyzer/src/test/java/org/eclipse/steady/patcheval/VersionTest.java
+patch-lib-analyzer/src/test/java/org/eclipse/steady/patcheval/package-info.java
+patch-lib-analyzer/src/test/java/org/eclipse/steady/patcheval/CiaTest.java
+kb-importer/src/test/java/org/eclipse/steady/kb/TestConstructs.java
+kb-importer/src/test/java/org/eclipse/steady/kb/command/ImportTest.java
+kb-importer/src/test/java/org/eclipse/steady/kb/command/CommandParserTest.java
+kb-importer/src/test/java/org/eclipse/steady/kb/util/MetadataTest.java
+kb-importer/src/test/java/org/eclipse/steady/kb/MainTest.java
+kb-importer/src/test/java/org/eclipse/steady/kb/TestPythonConstructs.java
+kb-importer/src/test/java/org/eclipse/steady/kb/task/TestImportVulnerability.java
+kb-importer/src/test/java/org/eclipse/steady/kb/task/TestImportVulnerability_CVE_2017_2617.java
+kb-importer/src/test/java/org/eclipse/steady/kb/task/TestImportAffectedLibraries.java
+kb-importer/src/test/java/org/eclipse/steady/kb/task/MockBackConnector.java
+kb-importer/src/test/java/org/eclipse/steady/kb/ZipUtil.java
+cli-scanner/src/test/java/org/eclipse/steady/cli/VulasCliTest.java
+cli-scanner/src/test/java/org/eclipse/steady/cli/AbstractGoalTest.java
+cli-scanner/src/test/java/org/eclipse/steady/cli/FileAnalyzerTest.java
+plugin-maven/src/test/java/org/eclipse/steady/java/mvn/VulasAgentOptionsTests.java
+plugin-maven/src/test/java/org/eclipse/steady/java/mvn/AbstractVulasMojoTest.java
+plugin-maven/src/test/java/org/eclipse/steady/java/mvn/TestProjectStub.java
+rest-lib-utils/src/test/java/org/eclipse/steady/cia/rest/IT03_ClassControllerTest.java
+rest-lib-utils/src/test/java/org/eclipse/steady/cia/rest/IT02_SpringControllerTest.java
+rest-lib-utils/src/test/java/org/eclipse/steady/cia/rest/IT01_ArtifactControllerTest.java
+rest-lib-utils/src/test/java/org/eclipse/steady/cia/rest/IT04_ConstructControllerTest.java
+rest-lib-utils/src/test/java/org/eclipse/steady/cia/model/maven/ArtifactTest.java
+rest-lib-utils/src/test/java/org/eclipse/steady/cia/dependencyfinder/JarDiffCmdTest.java
+rest-backend/src/test/java/org/eclipse/steady/backend/rest/HubIntegrationControllerTest.java
+rest-backend/src/test/java/org/eclipse/steady/backend/rest/IT02_CoverageControllerIT.java
+rest-backend/src/test/java/org/eclipse/steady/backend/rest/BugControllerTest.java
+rest-backend/src/test/java/org/eclipse/steady/backend/rest/LibraryControllerTest.java
+rest-backend/src/test/java/org/eclipse/steady/backend/rest/SpaceControllerTest.java
+rest-backend/src/test/java/org/eclipse/steady/backend/rest/ApplicationControllerTest.java
+rest-backend/src/test/java/org/eclipse/steady/backend/rest/TenantControllerTest.java
+rest-backend/src/test/java/org/eclipse/steady/backend/util/ConnectionUtilTest.java
+rest-backend/src/test/java/org/eclipse/steady/backend/util/SmtpClientTest.java
+rest-backend/src/test/java/org/eclipse/steady/backend/util/package-info.java
+rest-backend/src/test/java/org/eclipse/steady/backend/util/ArtifactMapsTest.java
+rest-backend/src/test/java/org/eclipse/steady/backend/util/PyPiVerifierTest.java
+rest-backend/src/test/java/org/eclipse/steady/backend/cve/CveReader2Test.java
+rest-backend/src/test/java/org/eclipse/steady/backend/cve/CveTest.java
+rest-backend/src/test/java/org/eclipse/steady/backend/cve/NvdRestServiceMockup.java
+rest-backend/src/test/java/org/eclipse/steady/backend/component/ApplicationExporterTest.java
+plugin-gradle/src/test/java/org/eclipse/steady/java/gradle/VulasBaseTest.java
+plugin-gradle/src/test/java/org/eclipse/steady/java/gradle/GradleTestProject.java
+plugin-gradle/src/test/java/org/eclipse/steady/java/gradle/AndroidLibsTest.java
+plugin-gradle/src/test/java/org/eclipse/steady/java/gradle/JavaLibTest.java
diff --git a/kb-importer/src/main/java/org/eclipse/steady/kb/command/Import.java b/kb-importer/src/main/java/org/eclipse/steady/kb/command/Import.java
index 3e4d22f4c..b0d5d1531 100755
--- a/kb-importer/src/main/java/org/eclipse/steady/kb/command/Import.java
+++ b/kb-importer/src/main/java/org/eclipse/steady/kb/command/Import.java
@@ -117,13 +117,12 @@ private void importVuln(HashMap args, String dirPath) {
Import.log.error("Please specify the vulerability id in the json");
return;
}
-
+
String vulnId = vuln.getVulnId();
boolean bugExists = false;
try {
bugExists = BackendConnector.getInstance().isBugExisting(vulnId);
- }
- catch (BackendConnectionException e) {
+ } catch (BackendConnectionException e) {
log.error("Can't connect to the Backend");
return;
}
@@ -132,8 +131,7 @@ private void importVuln(HashMap args, String dirPath) {
if (bugExists) {
if (overwrite) {
args.put(DELETE, true);
- }
- else {
+ } else {
log.info("Bug [{}] already exists in backend, analysis will be skipped", vulnId);
return;
}
diff --git a/lang/src/main/java/org/eclipse/steady/backend/BackendConnector.java b/lang/src/main/java/org/eclipse/steady/backend/BackendConnector.java
index 0671a9746..fcdf9b5fa 100755
--- a/lang/src/main/java/org/eclipse/steady/backend/BackendConnector.java
+++ b/lang/src/main/java/org/eclipse/steady/backend/BackendConnector.java
@@ -1050,8 +1050,7 @@ public void uploadChangeList(String _bug, String _json) throws BackendConnection
public void deleteBug(String _bugId) throws BackendConnectionException {
final BasicHttpRequest del_req =
- new BasicHttpRequest(HttpMethod.DELETE,
- PathBuilder.bug(_bugId));
+ new BasicHttpRequest(HttpMethod.DELETE, PathBuilder.bug(_bugId));
// payload cannot be empty otherwise request doesn t work
del_req.setPayload("[]", "application/json", true);
del_req.send();
diff --git a/non-compliant-files.txt b/non-compliant-files.txt
new file mode 100644
index 000000000..e69de29bb
From 04b50a4b32181094f6c3b61103801d04eba12317 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pedro=20Galv=C3=A3o?=
Date: Wed, 6 Apr 2022 14:42:06 +0200
Subject: [PATCH 05/83] Removed files added by accident
---
java-files.txt | 597 ----------------------------------------
non-compliant-files.txt | 0
2 files changed, 597 deletions(-)
delete mode 100644 java-files.txt
delete mode 100644 non-compliant-files.txt
diff --git a/java-files.txt b/java-files.txt
deleted file mode 100644
index 80eb1aadb..000000000
--- a/java-files.txt
+++ /dev/null
@@ -1,597 +0,0 @@
-shared/src/main/java/org/eclipse/steady/shared/enums/ConstructChangeType.java
-shared/src/main/java/org/eclipse/steady/shared/enums/PropertySource.java
-shared/src/main/java/org/eclipse/steady/shared/enums/CoverageStatus.java
-shared/src/main/java/org/eclipse/steady/shared/enums/BugOrigin.java
-shared/src/main/java/org/eclipse/steady/shared/enums/GoalClient.java
-shared/src/main/java/org/eclipse/steady/shared/enums/PathSource.java
-shared/src/main/java/org/eclipse/steady/shared/enums/ExportFormat.java
-shared/src/main/java/org/eclipse/steady/shared/enums/Scope.java
-shared/src/main/java/org/eclipse/steady/shared/enums/package-info.java
-shared/src/main/java/org/eclipse/steady/shared/enums/ExportConfiguration.java
-shared/src/main/java/org/eclipse/steady/shared/enums/ConstructType.java
-shared/src/main/java/org/eclipse/steady/shared/enums/GoalType.java
-shared/src/main/java/org/eclipse/steady/shared/enums/ContentMaturityLevel.java
-shared/src/main/java/org/eclipse/steady/shared/enums/AffectedVersionSource.java
-shared/src/main/java/org/eclipse/steady/shared/enums/DigestAlgorithm.java
-shared/src/main/java/org/eclipse/steady/shared/enums/ProgrammingLanguage.java
-shared/src/main/java/org/eclipse/steady/shared/enums/DependencyOrigin.java
-shared/src/main/java/org/eclipse/steady/shared/enums/VulnDepOrigin.java
-shared/src/main/java/org/eclipse/steady/shared/cache/Cache.java
-shared/src/main/java/org/eclipse/steady/shared/cache/ObjectFetcher.java
-shared/src/main/java/org/eclipse/steady/shared/cache/CacheException.java
-shared/src/main/java/org/eclipse/steady/shared/package-info.java
-shared/src/main/java/org/eclipse/steady/shared/util/DependencyUtil.java
-shared/src/main/java/org/eclipse/steady/shared/util/AbstractFileSearch.java
-shared/src/main/java/org/eclipse/steady/shared/util/DirnamePatternSearch.java
-shared/src/main/java/org/eclipse/steady/shared/util/FileSearch.java
-shared/src/main/java/org/eclipse/steady/shared/util/MemoryMonitor.java
-shared/src/main/java/org/eclipse/steady/shared/util/CollectionUtil.java
-shared/src/main/java/org/eclipse/steady/shared/util/Constants.java
-shared/src/main/java/org/eclipse/steady/shared/util/FileUtil.java
-shared/src/main/java/org/eclipse/steady/shared/util/package-info.java
-shared/src/main/java/org/eclipse/steady/shared/util/ThreadUtil.java
-shared/src/main/java/org/eclipse/steady/shared/util/StringUtil.java
-shared/src/main/java/org/eclipse/steady/shared/util/FilenamePatternSearch.java
-shared/src/main/java/org/eclipse/steady/shared/util/DigestUtil.java
-shared/src/main/java/org/eclipse/steady/shared/util/StopWatch.java
-shared/src/main/java/org/eclipse/steady/shared/util/DirWithFileSearch.java
-shared/src/main/java/org/eclipse/steady/shared/util/DirUtil.java
-shared/src/main/java/org/eclipse/steady/shared/util/ConstructIdUtil.java
-shared/src/main/java/org/eclipse/steady/shared/util/ProgressTracker.java
-shared/src/main/java/org/eclipse/steady/shared/util/VulasConfiguration.java
-shared/src/main/java/org/eclipse/steady/shared/util/StringList.java
-shared/src/main/java/org/eclipse/steady/shared/json/JsonBuilder.java
-shared/src/main/java/org/eclipse/steady/shared/json/JsonWriter.java
-shared/src/main/java/org/eclipse/steady/shared/json/JacksonUtil.java
-shared/src/main/java/org/eclipse/steady/shared/json/JsonSyntaxException.java
-shared/src/main/java/org/eclipse/steady/shared/json/JsonReader.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/ConstructId.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/ConstructChange.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/ConstructIdFilter.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/IExemption.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/Trace.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/diff/ClassModification.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/diff/ClassDiffResult.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/diff/JarDiffResult.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/Space.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/AffectedConstructChange.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/Application.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/ExemptionSet.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/ExemptionUnassessed.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/Bug.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/ConstructChangeInDependency.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/package-info.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/Version.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/FileChange.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/Artifact.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/VulnerableDependency.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/Library.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/mavenCentral/ResponseDoc.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/mavenCentral/MavenVersionsSearch.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/mavenCentral/MavenSearchResponse.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/KeyValue.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/Tenant.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/ExemptionBug.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/AffectedLibrary.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/PathNode.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/ExemptionScope.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/Property.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/view/Views.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/metrics/Percentage.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/metrics/package-info.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/metrics/Metrics.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/metrics/AbstractMetric.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/metrics/Counter.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/metrics/Ratio.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/LibraryId.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/Dependency.java
-shared/src/main/java/org/eclipse/steady/shared/connectivity/Service.java
-shared/src/main/java/org/eclipse/steady/shared/connectivity/PathBuilder.java
-shared/src/main/java/org/eclipse/steady/shared/connectivity/ServiceConnectionException.java
-shared/src/main/java/org/eclipse/steady/shared/connectivity/package-info.java
-lang/src/main/java/org/eclipse/steady/ConstructId.java
-lang/src/main/java/org/eclipse/steady/ConstructChange.java
-lang/src/main/java/org/eclipse/steady/malice/ZipSlipAnalyzer.java
-lang/src/main/java/org/eclipse/steady/malice/MaliciousnessAnalyzerLoop.java
-lang/src/main/java/org/eclipse/steady/malice/MaliciousnessAnalysisResult.java
-lang/src/main/java/org/eclipse/steady/malice/MaliciousnessAnalyzer.java
-lang/src/main/java/org/eclipse/steady/Construct.java
-lang/src/main/java/org/eclipse/steady/backend/HttpMethod.java
-lang/src/main/java/org/eclipse/steady/backend/HttpResponse.java
-lang/src/main/java/org/eclipse/steady/backend/EntityNotFoundInBackendException.java
-lang/src/main/java/org/eclipse/steady/backend/requests/PutLibraryCondition.java
-lang/src/main/java/org/eclipse/steady/backend/requests/RequestRepeater.java
-lang/src/main/java/org/eclipse/steady/backend/requests/AbstractHttpRequest.java
-lang/src/main/java/org/eclipse/steady/backend/requests/ContentCondition.java
-lang/src/main/java/org/eclipse/steady/backend/requests/StatusCondition.java
-lang/src/main/java/org/eclipse/steady/backend/requests/HttpRequestList.java
-lang/src/main/java/org/eclipse/steady/backend/requests/package-info.java
-lang/src/main/java/org/eclipse/steady/backend/requests/ResponseCondition.java
-lang/src/main/java/org/eclipse/steady/backend/requests/HttpRequest.java
-lang/src/main/java/org/eclipse/steady/backend/requests/ConditionalHttpRequest.java
-lang/src/main/java/org/eclipse/steady/backend/requests/BasicHttpRequest.java
-lang/src/main/java/org/eclipse/steady/backend/BackendConnectionException.java
-lang/src/main/java/org/eclipse/steady/backend/BackendConnector.java
-lang/src/main/java/org/eclipse/steady/DirAnalyzer.java
-lang/src/main/java/org/eclipse/steady/FileAnalyzer.java
-lang/src/main/java/org/eclipse/steady/FileAnalyzerFactory.java
-lang/src/main/java/org/eclipse/steady/FileAnalysisException.java
-lang/src/main/java/org/eclipse/steady/core/util/SignatureConfiguration.java
-lang/src/main/java/org/eclipse/steady/core/util/package-info.java
-lang/src/main/java/org/eclipse/steady/core/util/CoreConfiguration.java
-lang/src/main/java/org/eclipse/steady/tasks/ReachTask.java
-lang/src/main/java/org/eclipse/steady/tasks/package-info.java
-lang/src/main/java/org/eclipse/steady/tasks/AbstractTask.java
-lang/src/main/java/org/eclipse/steady/tasks/AbstractBomTask.java
-lang/src/main/java/org/eclipse/steady/tasks/Task.java
-lang/src/main/java/org/eclipse/steady/tasks/BomTask.java
-lang/src/main/java/org/eclipse/steady/sign/Signature.java
-lang/src/main/java/org/eclipse/steady/sign/SignatureComparator.java
-lang/src/main/java/org/eclipse/steady/sign/SignatureAnalysis.java
-lang/src/main/java/org/eclipse/steady/sign/SignatureChange.java
-lang/src/main/java/org/eclipse/steady/sign/SignatureFactory.java
-lang/src/main/java/org/eclipse/steady/report/Report.java
-lang/src/main/java/org/eclipse/steady/goals/AbstractGoal.java
-lang/src/main/java/org/eclipse/steady/goals/SpaceModGoal.java
-lang/src/main/java/org/eclipse/steady/goals/SpaceDelGoal.java
-lang/src/main/java/org/eclipse/steady/goals/ReportException.java
-lang/src/main/java/org/eclipse/steady/goals/SpaceCleanGoal.java
-lang/src/main/java/org/eclipse/steady/goals/CleanGoal.java
-lang/src/main/java/org/eclipse/steady/goals/GoalExecutor.java
-lang/src/main/java/org/eclipse/steady/goals/BomGoal.java
-lang/src/main/java/org/eclipse/steady/goals/AbstractAppGoal.java
-lang/src/main/java/org/eclipse/steady/goals/TestGoal.java
-lang/src/main/java/org/eclipse/steady/goals/package-info.java
-lang/src/main/java/org/eclipse/steady/goals/SequenceGoal.java
-lang/src/main/java/org/eclipse/steady/goals/SpaceNewGoal.java
-lang/src/main/java/org/eclipse/steady/goals/GoalExecutionException.java
-lang/src/main/java/org/eclipse/steady/goals/ExecutionObserver.java
-lang/src/main/java/org/eclipse/steady/goals/GoalConfigurationException.java
-lang/src/main/java/org/eclipse/steady/goals/GoalFactory.java
-lang/src/main/java/org/eclipse/steady/goals/UploadGoal.java
-lang/src/main/java/org/eclipse/steady/goals/GoalContext.java
-lang/src/main/java/org/eclipse/steady/goals/ReportGoal.java
-lang/src/main/java/org/eclipse/steady/goals/CheckverGoal.java
-lang/src/main/java/org/eclipse/steady/goals/AbstractSpaceGoal.java
-lang-java/src/main/java/org/eclipse/steady/java/ClassFileAnalyzer.java
-lang-java/src/main/java/org/eclipse/steady/java/AarAnalyzer.java
-lang-java/src/main/java/org/eclipse/steady/java/JavaClassInit.java
-lang-java/src/main/java/org/eclipse/steady/java/JavaClassId.java
-lang-java/src/main/java/org/eclipse/steady/java/PomParser.java
-lang-java/src/main/java/org/eclipse/steady/java/JavaConstructorId.java
-lang-java/src/main/java/org/eclipse/steady/java/JavaMethodId.java
-lang-java/src/main/java/org/eclipse/steady/java/JavaId.java
-lang-java/src/main/java/org/eclipse/steady/java/JavaEnumId.java
-lang-java/src/main/java/org/eclipse/steady/java/WarAnalyzer.java
-lang-java/src/main/java/org/eclipse/steady/java/JarWriter.java
-lang-java/src/main/java/org/eclipse/steady/java/JarAnalysisException.java
-lang-java/src/main/java/org/eclipse/steady/java/SpringBootAnalyzer.java
-lang-java/src/main/java/org/eclipse/steady/java/JarEntryWriter.java
-lang-java/src/main/java/org/eclipse/steady/java/JavaPackageId.java
-lang-java/src/main/java/org/eclipse/steady/java/tasks/package-info.java
-lang-java/src/main/java/org/eclipse/steady/java/tasks/JavaBomTask.java
-lang-java/src/main/java/org/eclipse/steady/java/sign/ASTSignature.java
-lang-java/src/main/java/org/eclipse/steady/java/sign/gson/ASTConstructBodySignatureDeserializer.java
-lang-java/src/main/java/org/eclipse/steady/java/sign/gson/GsonHelper.java
-lang-java/src/main/java/org/eclipse/steady/java/sign/gson/ASTSignatureDeserializer.java
-lang-java/src/main/java/org/eclipse/steady/java/sign/gson/ASTSignatureChangeDeserializer.java
-lang-java/src/main/java/org/eclipse/steady/java/sign/gson/ASTSignatureChangeSerializer.java
-lang-java/src/main/java/org/eclipse/steady/java/sign/gson/package-info.java
-lang-java/src/main/java/org/eclipse/steady/java/sign/gson/ASTConstructBodySignatureSerializer.java
-lang-java/src/main/java/org/eclipse/steady/java/sign/ASTSignatureComparator.java
-lang-java/src/main/java/org/eclipse/steady/java/sign/CompilationUtils.java
-lang-java/src/main/java/org/eclipse/steady/java/sign/ASTSignatureChange.java
-lang-java/src/main/java/org/eclipse/steady/java/sign/package-info.java
-lang-java/src/main/java/org/eclipse/steady/java/sign/JavaSignatureFactory.java
-lang-java/src/main/java/org/eclipse/steady/java/sign/UniqueNameNormalizer.java
-lang-java/src/main/java/org/eclipse/steady/java/sign/ASTConstructBodySignature.java
-lang-java/src/main/java/org/eclipse/steady/java/sign/ASTUtil.java
-lang-java/src/main/java/org/eclipse/steady/java/sign/DistillerUtil.java
-lang-java/src/main/java/org/eclipse/steady/java/JarAnalyzer.java
-lang-java/src/main/java/org/eclipse/steady/java/JavaInterfaceId.java
-lang-java/src/main/java/org/eclipse/steady/java/goals/InstrGoal.java
-lang-java/src/main/java/org/eclipse/steady/java/goals/CheckBytecodeGoal.java
-lang-java/src/main/java/org/eclipse/steady/java/bytecode/BytecodeComparator.java
-lang-java/src/main/java/org/eclipse/steady/java/bytecode/ConstructBytecodeASTManager.java
-lang-java/src/main/java/org/eclipse/steady/java/JavaFileAnalyzer2.java
-lang-java/src/main/java/org/eclipse/steady/java/monitor/IInstrumentor.java
-lang-java/src/main/java/org/eclipse/steady/java/monitor/slice/SliceInstrumentor.java
-lang-java/src/main/java/org/eclipse/steady/java/monitor/touch/TouchPointCollector.java
-lang-java/src/main/java/org/eclipse/steady/java/monitor/touch/TouchPointInstrumentor.java
-lang-java/src/main/java/org/eclipse/steady/java/monitor/touch/ConstructIdUtil.java
-lang-java/src/main/java/org/eclipse/steady/java/monitor/ExecutionMonitor.java
-lang-java/src/main/java/org/eclipse/steady/java/monitor/InstrumentationControl.java
-lang-java/src/main/java/org/eclipse/steady/java/monitor/InstrumentorFactory.java
-lang-java/src/main/java/org/eclipse/steady/java/monitor/ClassPoolUpdater.java
-lang-java/src/main/java/org/eclipse/steady/java/monitor/UploadScheduler.java
-lang-java/src/main/java/org/eclipse/steady/java/monitor/trace/ConstructUsage.java
-lang-java/src/main/java/org/eclipse/steady/java/monitor/trace/StackTraceUtil.java
-lang-java/src/main/java/org/eclipse/steady/java/monitor/trace/TraceCollector.java
-lang-java/src/main/java/org/eclipse/steady/java/monitor/trace/StackTraceInstrumentor.java
-lang-java/src/main/java/org/eclipse/steady/java/monitor/trace/AbstractTraceInstrumentor.java
-lang-java/src/main/java/org/eclipse/steady/java/monitor/trace/SingleStackTraceInstrumentor.java
-lang-java/src/main/java/org/eclipse/steady/java/monitor/trace/PathNode.java
-lang-java/src/main/java/org/eclipse/steady/java/monitor/trace/SingleTraceInstrumentor.java
-lang-java/src/main/java/org/eclipse/steady/java/monitor/ClassNameLoaderFilter.java
-lang-java/src/main/java/org/eclipse/steady/java/monitor/LoaderHierarchy.java
-lang-java/src/main/java/org/eclipse/steady/java/monitor/LoaderFilter.java
-lang-java/src/main/java/org/eclipse/steady/java/monitor/Loader.java
-lang-java/src/main/java/org/eclipse/steady/java/monitor/AbstractInstrumentor.java
-lang-java/src/main/java/org/eclipse/steady/java/monitor/ClassVisitor.java
-lang-java/src/main/java/org/eclipse/steady/java/monitor/DynamicTransformer.java
-lang-java/src/main/java/org/eclipse/steady/java/monitor/PrintlnInstrumentor.java
-lang-java/src/main/java/org/eclipse/steady/java/decompiler/IDecompiler.java
-lang-java/src/main/java/org/eclipse/steady/java/decompiler/ProcyonDecompiler.java
-lang-java/src/main/java/org/eclipse/steady/java/ArchiveAnalysisManager.java
-lang-java-reach/src/main/java/org/eclipse/steady/cg/ReachabilityAnalyzer.java
-lang-java-reach/src/main/java/org/eclipse/steady/cg/CallgraphReachableSearch.java
-lang-java-reach/src/main/java/org/eclipse/steady/cg/AbstractReachGoal.java
-lang-java-reach/src/main/java/org/eclipse/steady/cg/NodeMetaInformation.java
-lang-java-reach/src/main/java/org/eclipse/steady/cg/spi/CallgraphConstructorFactory.java
-lang-java-reach/src/main/java/org/eclipse/steady/cg/spi/ICallgraphConstructor.java
-lang-java-reach/src/main/java/org/eclipse/steady/cg/T2CGoal.java
-lang-java-reach/src/main/java/org/eclipse/steady/cg/PrunedGraphGetPaths.java
-lang-java-reach/src/main/java/org/eclipse/steady/cg/Callgraph.java
-lang-java-reach/src/main/java/org/eclipse/steady/cg/MethodNameFilter.java
-lang-java-reach/src/main/java/org/eclipse/steady/cg/DepthFirstGetPaths.java
-lang-java-reach/src/main/java/org/eclipse/steady/cg/A2CGoal.java
-lang-java-reach/src/main/java/org/eclipse/steady/cg/CallgraphPathSearch.java
-lang-java-reach/src/main/java/org/eclipse/steady/cg/ReachabilityConfiguration.java
-lang-java-reach/src/main/java/org/eclipse/steady/cg/AbstractGetPaths.java
-lang-java-reach/src/main/java/org/eclipse/steady/cg/CallgraphConstructException.java
-lang-java-reach/src/main/java/org/eclipse/steady/cg/PathSimilarity.java
-lang-java-reach-wala/src/main/java/org/eclipse/steady/cg/wala/WalaCallgraphConstructor.java
-lang-java-reach-soot/src/main/java/org/eclipse/steady/cg/soot/SootConfiguration.java
-lang-java-reach-soot/src/main/java/org/eclipse/steady/cg/soot/CustomEntryPointCreator.java
-lang-java-reach-soot/src/main/java/org/eclipse/steady/cg/soot/SootCallgraphConstructor.java
-lang-python/src/main/java/org/eclipse/steady/python/virtualenv/VirtualenvWrapper.java
-lang-python/src/main/java/org/eclipse/steady/python/virtualenv/package-info.java
-lang-python/src/main/java/org/eclipse/steady/python/Python3FileAnalyzer.java
-lang-python/src/main/java/org/eclipse/steady/python/PythonId.java
-lang-python/src/main/java/org/eclipse/steady/python/PythonFileAnalyzer.java
-lang-python/src/main/java/org/eclipse/steady/python/ProcessWrapperException.java
-lang-python/src/main/java/org/eclipse/steady/python/utils/PythonConfiguration.java
-lang-python/src/main/java/org/eclipse/steady/python/pip/PyWrapper.java
-lang-python/src/main/java/org/eclipse/steady/python/pip/package-info.java
-lang-python/src/main/java/org/eclipse/steady/python/pip/PipInstalledPackage.java
-lang-python/src/main/java/org/eclipse/steady/python/pip/PipWrapper.java
-lang-python/src/main/java/org/eclipse/steady/python/PythonArchiveAnalyzer.java
-lang-python/src/main/java/org/eclipse/steady/python/tasks/package-info.java
-lang-python/src/main/java/org/eclipse/steady/python/tasks/PythonBomTask.java
-lang-python/src/main/java/org/eclipse/steady/python/sign/PythonConstructDigestDeserializer.java
-lang-python/src/main/java/org/eclipse/steady/python/sign/PythonSignatureFactory.java
-lang-python/src/main/java/org/eclipse/steady/python/sign/PythonConstructDigest.java
-lang-python/src/main/java/org/eclipse/steady/python/sign/PythonConstructDigestSerializer.java
-lang-python/src/main/java/org/eclipse/steady/python/Python335FileAnalyzer.java
-lang-python/src/main/java/org/eclipse/steady/python/ProcessWrapper.java
-repo-client/src/main/java/org/eclipse/steady/git/GitClient.java
-repo-client/src/main/java/org/eclipse/steady/git/MyProxySelector.java
-repo-client/src/main/java/org/eclipse/steady/package-info.java
-repo-client/src/main/java/org/eclipse/steady/vcs/NoRepoClientException.java
-repo-client/src/main/java/org/eclipse/steady/vcs/RepoMismatchException.java
-repo-client/src/main/java/org/eclipse/steady/vcs/IVCSClient.java
-repo-client/src/main/java/org/eclipse/steady/vcs/FileChange.java
-repo-client/src/main/java/org/eclipse/steady/svn/SvnClient.java
-patch-analyzer/src/main/java/org/eclipse/steady/patcha/PatchAnalyzer.java
-patch-analyzer/src/main/java/org/eclipse/steady/patcha/PatchaConfiguration.java
-patch-analyzer/src/main/java/org/eclipse/steady/patcha/FileComparator.java
-patch-analyzer/src/main/java/org/eclipse/steady/patcha/VulasProxySelector.java
-patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/ByteCodeComparator.java
-patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/Main.java
-patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/BugLibAnalyzer.java
-patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/BytecodeAnalyzer.java
-patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/utils/PEConfiguration.java
-patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/utils/CSVHelper2.java
-patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/LibraryAnalyzerThread2.java
-patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/representation/ConstructPathLibResult2.java
-patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/representation/ArtifactLibrary.java
-patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/representation/Intersection2.java
-patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/representation/ArtifactResult2.java
-patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/representation/ConstructPathAssessment2.java
-patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/representation/OverallConstructChange.java
-patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/representation/OrderedCCperConstructPath2.java
-patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/representation/ReleaseTree.java
-patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/representation/LidResult2.java
-patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/PE_Run.java
-patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/BugLibManager.java
-kb-importer/src/main/java/org/eclipse/steady/kb/Main.java
-kb-importer/src/main/java/org/eclipse/steady/kb/command/Help.java
-kb-importer/src/main/java/org/eclipse/steady/kb/command/CommandParser.java
-kb-importer/src/main/java/org/eclipse/steady/kb/command/Command.java
-kb-importer/src/main/java/org/eclipse/steady/kb/command/Version.java
-kb-importer/src/main/java/org/eclipse/steady/kb/command/CommandExecutor.java
-kb-importer/src/main/java/org/eclipse/steady/kb/command/Import.java
-kb-importer/src/main/java/org/eclipse/steady/kb/util/Metadata.java
-kb-importer/src/main/java/org/eclipse/steady/kb/util/FileComparator.java
-kb-importer/src/main/java/org/eclipse/steady/kb/util/ConstructSet.java
-kb-importer/src/main/java/org/eclipse/steady/kb/task/ImportAffectedLibraries.java
-kb-importer/src/main/java/org/eclipse/steady/kb/task/ImportVulnerability.java
-kb-importer/src/main/java/org/eclipse/steady/kb/task/TaskProvider.java
-kb-importer/src/main/java/org/eclipse/steady/kb/task/Task.java
-kb-importer/src/main/java/org/eclipse/steady/kb/exception/CommandLineParserException.java
-kb-importer/src/main/java/org/eclipse/steady/kb/exception/ValidationException.java
-kb-importer/src/main/java/org/eclipse/steady/kb/model/Commit.java
-kb-importer/src/main/java/org/eclipse/steady/kb/model/Artifact.java
-kb-importer/src/main/java/org/eclipse/steady/kb/model/Vulnerability.java
-kb-importer/src/main/java/org/eclipse/steady/kb/model/Note.java
-cli-scanner/src/main/java/org/eclipse/steady/cli/package-info.java
-cli-scanner/src/main/java/org/eclipse/steady/cli/VulasCli.java
-plugin-maven/src/main/java/org/eclipse/steady/java/mvn/MvnPluginClean.java
-plugin-maven/src/main/java/org/eclipse/steady/java/mvn/VulasAgentMojo.java
-plugin-maven/src/main/java/org/eclipse/steady/java/mvn/MvnPluginT2C.java
-plugin-maven/src/main/java/org/eclipse/steady/java/mvn/MvnPluginUpload.java
-plugin-maven/src/main/java/org/eclipse/steady/java/mvn/AbstractVulasMojo.java
-plugin-maven/src/main/java/org/eclipse/steady/java/mvn/MvnPluginSpaceClean.java
-plugin-maven/src/main/java/org/eclipse/steady/java/mvn/MvnPluginA2C.java
-plugin-maven/src/main/java/org/eclipse/steady/java/mvn/MvnPluginBom.java
-plugin-maven/src/main/java/org/eclipse/steady/java/mvn/MvnPluginCheckBytecode.java
-plugin-maven/src/main/java/org/eclipse/steady/java/mvn/MvnPluginInstr.java
-plugin-maven/src/main/java/org/eclipse/steady/java/mvn/MvnPluginReport.java
-plugin-maven/src/main/java/org/eclipse/steady/java/mvn/AbstractVulasSpaceMojo.java
-rest-lib-utils/src/main/java/org/eclipse/steady/cia/rest/MainController.java
-rest-lib-utils/src/main/java/org/eclipse/steady/cia/rest/ConstructController.java
-rest-lib-utils/src/main/java/org/eclipse/steady/cia/rest/ClassController.java
-rest-lib-utils/src/main/java/org/eclipse/steady/cia/rest/ConfigurationController.java
-rest-lib-utils/src/main/java/org/eclipse/steady/cia/rest/ArtifactController.java
-rest-lib-utils/src/main/java/org/eclipse/steady/cia/package-info.java
-rest-lib-utils/src/main/java/org/eclipse/steady/cia/util/RepositoryWrapper.java
-rest-lib-utils/src/main/java/org/eclipse/steady/cia/util/MavenCentralWrapper.java
-rest-lib-utils/src/main/java/org/eclipse/steady/cia/util/CacheFilter.java
-rest-lib-utils/src/main/java/org/eclipse/steady/cia/util/RepositoryDispatcher.java
-rest-lib-utils/src/main/java/org/eclipse/steady/cia/util/PypiWrapper.java
-rest-lib-utils/src/main/java/org/eclipse/steady/cia/util/RepoException.java
-rest-lib-utils/src/main/java/org/eclipse/steady/cia/util/ClassDownloader.java
-rest-lib-utils/src/main/java/org/eclipse/steady/cia/util/NexusWrapper.java
-rest-lib-utils/src/main/java/org/eclipse/steady/cia/util/FileAnalyzerFetcher.java
-rest-lib-utils/src/main/java/org/eclipse/steady/cia/util/HeaderEcho.java
-rest-lib-utils/src/main/java/org/eclipse/steady/cia/util/ArtifactDownloader.java
-rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/nexus/NexusDescribeInfo.java
-rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/nexus/NexusResponse.java
-rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/nexus/NexusSearchNGResponse.java
-rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/nexus/NexusResolvedArtifact.java
-rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/nexus/NexusArtifactInfoResourceResponse.java
-rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/nexus/NexusNGData.java
-rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/nexus/NexusArtifactResolution.java
-rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/nexus/NexusArtifact.java
-rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/nexus/NexusLibId.java
-rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/nexus/NexusSearch.java
-rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/nexus/NexusData.java
-rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/pypi/PypiRelease.java
-rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/pypi/PypiInfo.java
-rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/pypi/PypiResponse.java
-rest-lib-utils/src/main/java/org/eclipse/steady/cia/dependencyfinder/JarDiffCmd.java
-rest-lib-utils/src/main/java/org/eclipse/steady/cia/dependencyfinder/JarDiffVisitor.java
-rest-lib-utils/src/main/java/org/eclipse/steady/cia/dependencyfinder/ClassDiffVisitor.java
-rest-backend/src/main/java/org/eclipse/steady/backend/rest/MainController.java
-rest-backend/src/main/java/org/eclipse/steady/backend/rest/SpaceController.java
-rest-backend/src/main/java/org/eclipse/steady/backend/rest/CveController.java
-rest-backend/src/main/java/org/eclipse/steady/backend/rest/ApplicationController.java
-rest-backend/src/main/java/org/eclipse/steady/backend/rest/CoverageController.java
-rest-backend/src/main/java/org/eclipse/steady/backend/rest/LibraryIdController.java
-rest-backend/src/main/java/org/eclipse/steady/backend/rest/LibraryController.java
-rest-backend/src/main/java/org/eclipse/steady/backend/rest/TenantController.java
-rest-backend/src/main/java/org/eclipse/steady/backend/rest/BugController.java
-rest-backend/src/main/java/org/eclipse/steady/backend/rest/HubIntegrationController.java
-rest-backend/src/main/java/org/eclipse/steady/backend/rest/ConfigurationController.java
-rest-backend/src/main/java/org/eclipse/steady/backend/package-info.java
-rest-backend/src/main/java/org/eclipse/steady/backend/util/MavenCentralVerifier.java
-rest-backend/src/main/java/org/eclipse/steady/backend/util/ReferenceUpdater.java
-rest-backend/src/main/java/org/eclipse/steady/backend/util/PyPiVerifier.java
-rest-backend/src/main/java/org/eclipse/steady/backend/util/DependencyUtil.java
-rest-backend/src/main/java/org/eclipse/steady/backend/util/TokenUtil.java
-rest-backend/src/main/java/org/eclipse/steady/backend/util/CacheFilter.java
-rest-backend/src/main/java/org/eclipse/steady/backend/util/Message.java
-rest-backend/src/main/java/org/eclipse/steady/backend/util/ArtifactMaps.java
-rest-backend/src/main/java/org/eclipse/steady/backend/util/DigestVerifier.java
-rest-backend/src/main/java/org/eclipse/steady/backend/util/ServiceWrapper.java
-rest-backend/src/main/java/org/eclipse/steady/backend/util/ResultSetFilter.java
-rest-backend/src/main/java/org/eclipse/steady/backend/util/SmtpClient.java
-rest-backend/src/main/java/org/eclipse/steady/backend/util/VerificationException.java
-rest-backend/src/main/java/org/eclipse/steady/backend/util/ConnectionUtil.java
-rest-backend/src/main/java/org/eclipse/steady/backend/util/DigestVerifierEnumerator.java
-rest-backend/src/main/java/org/eclipse/steady/backend/cve/Cve.java
-rest-backend/src/main/java/org/eclipse/steady/backend/cve/CveReader2.java
-rest-backend/src/main/java/org/eclipse/steady/backend/model/ConstructId.java
-rest-backend/src/main/java/org/eclipse/steady/backend/model/DependencyUpdate.java
-rest-backend/src/main/java/org/eclipse/steady/backend/model/Path.java
-rest-backend/src/main/java/org/eclipse/steady/backend/model/ConstructChangeType.java
-rest-backend/src/main/java/org/eclipse/steady/backend/model/ConstructChange.java
-rest-backend/src/main/java/org/eclipse/steady/backend/model/ConstructIdFilter.java
-rest-backend/src/main/java/org/eclipse/steady/backend/model/DependencyIntersection.java
-rest-backend/src/main/java/org/eclipse/steady/backend/model/TouchPoint.java
-rest-backend/src/main/java/org/eclipse/steady/backend/model/Trace.java
-rest-backend/src/main/java/org/eclipse/steady/backend/model/Space.java
-rest-backend/src/main/java/org/eclipse/steady/backend/model/AffectedConstructChange.java
-rest-backend/src/main/java/org/eclipse/steady/backend/model/Application.java
-rest-backend/src/main/java/org/eclipse/steady/backend/model/PackageStatistics.java
-rest-backend/src/main/java/org/eclipse/steady/backend/model/Bug.java
-rest-backend/src/main/java/org/eclipse/steady/backend/model/ConstructChangeInDependency.java
-rest-backend/src/main/java/org/eclipse/steady/backend/model/GoalExecution.java
-rest-backend/src/main/java/org/eclipse/steady/backend/model/V_AppVulndep.java
-rest-backend/src/main/java/org/eclipse/steady/backend/model/VulnerableDependency.java
-rest-backend/src/main/java/org/eclipse/steady/backend/model/Library.java
-rest-backend/src/main/java/org/eclipse/steady/backend/model/ConstructSearchResult.java
-rest-backend/src/main/java/org/eclipse/steady/backend/model/Tenant.java
-rest-backend/src/main/java/org/eclipse/steady/backend/model/AffectedLibrary.java
-rest-backend/src/main/java/org/eclipse/steady/backend/model/PathNode.java
-rest-backend/src/main/java/org/eclipse/steady/backend/model/Property.java
-rest-backend/src/main/java/org/eclipse/steady/backend/model/view/Views.java
-rest-backend/src/main/java/org/eclipse/steady/backend/model/LibraryId.java
-rest-backend/src/main/java/org/eclipse/steady/backend/model/Dependency.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/TenantRepository.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/ApplicationRepositoryCustom.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/AffectedLibraryRepositoryCustom.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/ConstructIdRepository.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/TenantRepositoryCustom.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/ApplicationRepositoryImpl.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/LibraryIdRepository.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/LibraryRepositoryCustom.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/SpaceRepositoryCustom.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/AffectedLibraryRepositoryImpl.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/SpaceRepositoryImpl.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/PropertyRepository.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/BugRepositoryCustom.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/DependencyRepositoryImpl.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/BugRepository.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/V_AppVulndepRepository.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/TracesRepositoryCustom.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/PathRepository.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/PathRepositoryImpl.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/TracesRepositoryImpl.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/PathRepositoryCustom.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/ApplicationRepository.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/DependencyRepository.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/BugRepositoryImpl.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/GoalExecutionRepositoryImpl.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/AffectedLibraryRepository.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/LibraryRepository.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/GoalExecutionRepositoryCustom.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/LibraryRepositoryImpl.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/SpaceRepository.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/TenantRepositoryImpl.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/GoalExecutionRepository.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/DependencyRepositoryCustom.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/TracesRepository.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/ConstructChangeRepository.java
-rest-backend/src/main/java/org/eclipse/steady/backend/component/ApplicationExporter.java
-rest-backend/src/main/java/org/eclipse/steady/backend/component/StatisticsContributor.java
-rest-backend/src/main/java/org/eclipse/steady/backend/component/ApplicationExporterThread.java
-plugin-gradle/src/main/java/org/eclipse/steady/java/gradle/VulasPlugin.java
-plugin-gradle/src/main/java/org/eclipse/steady/java/gradle/GradlePluginClean.java
-plugin-gradle/src/main/java/org/eclipse/steady/java/gradle/GradlePluginReport.java
-plugin-gradle/src/main/java/org/eclipse/steady/java/gradle/GradlePluginA2C.java
-plugin-gradle/src/main/java/org/eclipse/steady/java/gradle/VulasPluginCommon.java
-plugin-gradle/src/main/java/org/eclipse/steady/java/gradle/GradleProjectUtilities.java
-plugin-gradle/src/main/java/org/eclipse/steady/java/gradle/GradlePluginApp.java
-plugin-gradle/src/main/java/org/eclipse/steady/java/gradle/AbstractVulasTask.java
-shared/src/test/java/org/eclipse/steady/shared/enums/ScopeTest.java
-shared/src/test/java/org/eclipse/steady/shared/cache/CacheTest.java
-shared/src/test/java/org/eclipse/steady/shared/util/FileSearchTest.java
-shared/src/test/java/org/eclipse/steady/shared/util/StringUtilTest.java
-shared/src/test/java/org/eclipse/steady/shared/util/StringListTest.java
-shared/src/test/java/org/eclipse/steady/shared/util/DigestUtilTest.java
-shared/src/test/java/org/eclipse/steady/shared/util/VulasConfigurationTest.java
-shared/src/test/java/org/eclipse/steady/shared/util/FileUtilTest.java
-shared/src/test/java/org/eclipse/steady/shared/util/StopWatchTest.java
-shared/src/test/java/org/eclipse/steady/shared/util/DirUtilTest.java
-shared/src/test/java/org/eclipse/steady/shared/util/TestDirWithFileSearch.java
-shared/src/test/java/org/eclipse/steady/shared/json/JsonBuilderTest.java
-shared/src/test/java/org/eclipse/steady/shared/json/JacksonUtilTest.java
-shared/src/test/java/org/eclipse/steady/shared/json/VulnerableDependencyJsonTest.java
-shared/src/test/java/org/eclipse/steady/shared/json/model/metrics/MetricsTest.java
-shared/src/test/java/org/eclipse/steady/shared/model/IExemptionTest.java
-shared/src/test/java/org/eclipse/steady/shared/model/ApplicationTest.java
-shared/src/test/java/org/eclipse/steady/shared/model/generic/VersionTest.java
-shared/src/test/java/org/eclipse/steady/shared/categories/RequiresNetwork.java
-shared/src/test/java/org/eclipse/steady/shared/categories/Integrated.java
-shared/src/test/java/org/eclipse/steady/shared/categories/Slow.java
-lang/src/test/java/org/eclipse/steady/malice/ZipSlipAnalyzerTest.java
-lang/src/test/java/org/eclipse/steady/malice/MaliciousnessAnalyzerLoopTest.java
-lang/src/test/java/org/eclipse/steady/report/ReportTest.java
-lang/src/test/java/org/eclipse/steady/goals/BomGoalTest.java
-lang/src/test/java/org/eclipse/steady/goals/SpaceDelGoalTest.java
-lang/src/test/java/org/eclipse/steady/goals/CleanGoalTest.java
-lang/src/test/java/org/eclipse/steady/goals/AbstractGoalTest.java
-lang/src/test/java/org/eclipse/steady/goals/SpaceNewGoalTest.java
-lang-java/src/test/java/ClassWithoutPackage.java
-lang-java/src/test/java/NestedDeclarationMess.java
-lang-java/src/test/java/org/eclipse/steady/java/WarAnalyzerTest.java
-lang-java/src/test/java/org/eclipse/steady/java/ClassFileAnalyzerTest.java
-lang-java/src/test/java/org/eclipse/steady/java/ArchiveAnalysisManagerTest.java
-lang-java/src/test/java/org/eclipse/steady/java/test/TestAnon.java
-lang-java/src/test/java/org/eclipse/steady/java/test/HttpRequestCompletionLog.java
-lang-java/src/test/java/org/eclipse/steady/java/test/EnumTest.java
-lang-java/src/test/java/org/eclipse/steady/java/test/Vanilla.java
-lang-java/src/test/java/org/eclipse/steady/java/test/ConfigKey.java
-lang-java/src/test/java/org/eclipse/steady/java/test/TestClass$NoNestedClass.java
-lang-java/src/test/java/org/eclipse/steady/java/test/DrinkEnumExample.java
-lang-java/src/test/java/org/eclipse/steady/java/test/Generics.java
-lang-java/src/test/java/org/eclipse/steady/java/test/TestInterface.java
-lang-java/src/test/java/org/eclipse/steady/java/test/NestedDeclarations.java
-lang-java/src/test/java/org/eclipse/steady/java/test/ConfigurationKey.java
-lang-java/src/test/java/org/eclipse/steady/java/test/HelloWorldAnonymousClasses.java
-lang-java/src/test/java/org/eclipse/steady/java/test/NestedDeclarationMess2.java
-lang-java/src/test/java/org/eclipse/steady/java/test/OuterClass.java
-lang-java/src/test/java/org/eclipse/steady/java/test/TestAgainAnon.java
-lang-java/src/test/java/org/eclipse/steady/java/JsonHelperTest.java
-lang-java/src/test/java/org/eclipse/steady/java/AarAnalyzerTest.java
-lang-java/src/test/java/org/eclipse/steady/java/SpringBootAnalyzerTest.java
-lang-java/src/test/java/org/eclipse/steady/java/ClassPoolUpdaterTest.java
-lang-java/src/test/java/org/eclipse/steady/java/JarAnalyzerTest.java
-lang-java/src/test/java/org/eclipse/steady/java/PomParserTest.java
-lang-java/src/test/java/org/eclipse/steady/java/JavaIdTest.java
-lang-java/src/test/java/org/eclipse/steady/java/JarWriterTest.java
-lang-java/src/test/java/org/eclipse/steady/java/sign/SignatureFactoryTest.java
-lang-java/src/test/java/org/eclipse/steady/java/sign/ASTSignatureComparatorTest.java
-lang-java/src/test/java/org/eclipse/steady/java/sign/gson/ASTDeserializeSignComparatorTest.java
-lang-java/src/test/java/org/eclipse/steady/java/sign/StringSimilarityLevenshtein.java
-lang-java/src/test/java/org/eclipse/steady/java/sign/UniqueNamePreprocessorTest.java
-lang-java/src/test/java/org/eclipse/steady/java/sign/StringSimilarityNGrams.java
-lang-java/src/test/java/org/eclipse/steady/java/sign/StringSimilarity.java
-lang-java/src/test/java/org/eclipse/steady/java/monitor/ClassVisitorTest.java
-lang-java/src/test/java/org/eclipse/steady/java/monitor/ConstructTransformerTest.java
-lang-java/src/test/java/org/eclipse/steady/java/monitor/AbstractGoalTest.java
-lang-java/src/test/java/org/eclipse/steady/java/JavaFileAnalyzer2Test.java
-lang-java/src/test/java/org/eclipse/steady/java/decompiler/IDecompilerTest.java
-lang-java-reach/src/test/java/org/eclipse/steady/cg/DummyCallgraphConstructor.java
-lang-java-reach/src/test/java/org/eclipse/steady/cg/CallgraphTest.java
-lang-java-reach/src/test/java/org/eclipse/steady/cg/CallgraphConstructorFactoryTest.java
-lang-java-reach/src/test/java/org/eclipse/steady/cg/Examples.java
-lang-java-reach-wala/src/test/java/org/eclipse/steady/cg/wala/WalaCallGraphTest.java
-lang-java-reach-soot/src/test/java/SootCallGraphTest.java
-lang-python/src/test/java/org/eclipse/steady/python/virtualenv/VirtualenvWrapperTest.java
-lang-python/src/test/java/org/eclipse/steady/python/pip/PipInstalledPackageTest.java
-lang-python/src/test/java/org/eclipse/steady/python/pip/PipWrapperTest.java
-lang-python/src/test/java/org/eclipse/steady/python/pip/PyWrapperTest.java
-lang-python/src/test/java/org/eclipse/steady/python/PythonArchiveAnalyzerTest.java
-lang-python/src/test/java/org/eclipse/steady/python/ProcessWrapperTest.java
-lang-python/src/test/java/org/eclipse/steady/python/PythonFileAnalyzerTest.java
-repo-client/src/test/java/org/eclipse/steady/git/GitTest.java
-patch-analyzer/src/test/java/org/eclipse/steady/patcha/IT01_PatchAnalyzerIT.java
-patch-analyzer/src/test/java/org/eclipse/steady/patcha/FileComparatorTest.java
-patch-lib-analyzer/src/test/java/org/eclipse/steady/patcheval/VersionTest.java
-patch-lib-analyzer/src/test/java/org/eclipse/steady/patcheval/package-info.java
-patch-lib-analyzer/src/test/java/org/eclipse/steady/patcheval/CiaTest.java
-kb-importer/src/test/java/org/eclipse/steady/kb/TestConstructs.java
-kb-importer/src/test/java/org/eclipse/steady/kb/command/ImportTest.java
-kb-importer/src/test/java/org/eclipse/steady/kb/command/CommandParserTest.java
-kb-importer/src/test/java/org/eclipse/steady/kb/util/MetadataTest.java
-kb-importer/src/test/java/org/eclipse/steady/kb/MainTest.java
-kb-importer/src/test/java/org/eclipse/steady/kb/TestPythonConstructs.java
-kb-importer/src/test/java/org/eclipse/steady/kb/task/TestImportVulnerability.java
-kb-importer/src/test/java/org/eclipse/steady/kb/task/TestImportVulnerability_CVE_2017_2617.java
-kb-importer/src/test/java/org/eclipse/steady/kb/task/TestImportAffectedLibraries.java
-kb-importer/src/test/java/org/eclipse/steady/kb/task/MockBackConnector.java
-kb-importer/src/test/java/org/eclipse/steady/kb/ZipUtil.java
-cli-scanner/src/test/java/org/eclipse/steady/cli/VulasCliTest.java
-cli-scanner/src/test/java/org/eclipse/steady/cli/AbstractGoalTest.java
-cli-scanner/src/test/java/org/eclipse/steady/cli/FileAnalyzerTest.java
-plugin-maven/src/test/java/org/eclipse/steady/java/mvn/VulasAgentOptionsTests.java
-plugin-maven/src/test/java/org/eclipse/steady/java/mvn/AbstractVulasMojoTest.java
-plugin-maven/src/test/java/org/eclipse/steady/java/mvn/TestProjectStub.java
-rest-lib-utils/src/test/java/org/eclipse/steady/cia/rest/IT03_ClassControllerTest.java
-rest-lib-utils/src/test/java/org/eclipse/steady/cia/rest/IT02_SpringControllerTest.java
-rest-lib-utils/src/test/java/org/eclipse/steady/cia/rest/IT01_ArtifactControllerTest.java
-rest-lib-utils/src/test/java/org/eclipse/steady/cia/rest/IT04_ConstructControllerTest.java
-rest-lib-utils/src/test/java/org/eclipse/steady/cia/model/maven/ArtifactTest.java
-rest-lib-utils/src/test/java/org/eclipse/steady/cia/dependencyfinder/JarDiffCmdTest.java
-rest-backend/src/test/java/org/eclipse/steady/backend/rest/HubIntegrationControllerTest.java
-rest-backend/src/test/java/org/eclipse/steady/backend/rest/IT02_CoverageControllerIT.java
-rest-backend/src/test/java/org/eclipse/steady/backend/rest/BugControllerTest.java
-rest-backend/src/test/java/org/eclipse/steady/backend/rest/LibraryControllerTest.java
-rest-backend/src/test/java/org/eclipse/steady/backend/rest/SpaceControllerTest.java
-rest-backend/src/test/java/org/eclipse/steady/backend/rest/ApplicationControllerTest.java
-rest-backend/src/test/java/org/eclipse/steady/backend/rest/TenantControllerTest.java
-rest-backend/src/test/java/org/eclipse/steady/backend/util/ConnectionUtilTest.java
-rest-backend/src/test/java/org/eclipse/steady/backend/util/SmtpClientTest.java
-rest-backend/src/test/java/org/eclipse/steady/backend/util/package-info.java
-rest-backend/src/test/java/org/eclipse/steady/backend/util/ArtifactMapsTest.java
-rest-backend/src/test/java/org/eclipse/steady/backend/util/PyPiVerifierTest.java
-rest-backend/src/test/java/org/eclipse/steady/backend/cve/CveReader2Test.java
-rest-backend/src/test/java/org/eclipse/steady/backend/cve/CveTest.java
-rest-backend/src/test/java/org/eclipse/steady/backend/cve/NvdRestServiceMockup.java
-rest-backend/src/test/java/org/eclipse/steady/backend/component/ApplicationExporterTest.java
-plugin-gradle/src/test/java/org/eclipse/steady/java/gradle/VulasBaseTest.java
-plugin-gradle/src/test/java/org/eclipse/steady/java/gradle/GradleTestProject.java
-plugin-gradle/src/test/java/org/eclipse/steady/java/gradle/AndroidLibsTest.java
-plugin-gradle/src/test/java/org/eclipse/steady/java/gradle/JavaLibTest.java
diff --git a/non-compliant-files.txt b/non-compliant-files.txt
deleted file mode 100644
index e69de29bb..000000000
From e6e3346e22235a2ef3d62115cbe29cbd65f1dbb4 Mon Sep 17 00:00:00 2001
From: Pedro
Date: Thu, 7 Apr 2022 14:55:06 +0200
Subject: [PATCH 06/83] Removed repeated option variables from Tasks
---
.../org/eclipse/steady/kb/command/Import.java | 20 +++++++++----------
.../kb/task/ImportAffectedLibraries.java | 8 ++++----
.../steady/kb/task/ImportVulnerability.java | 13 ++++--------
3 files changed, 18 insertions(+), 23 deletions(-)
diff --git a/kb-importer/src/main/java/org/eclipse/steady/kb/command/Import.java b/kb-importer/src/main/java/org/eclipse/steady/kb/command/Import.java
index b0d5d1531..edd4cbaad 100755
--- a/kb-importer/src/main/java/org/eclipse/steady/kb/command/Import.java
+++ b/kb-importer/src/main/java/org/eclipse/steady/kb/command/Import.java
@@ -46,16 +46,16 @@
public class Import implements Command {
private static final String METADATA_JSON = "metadata.json";
- private static final String UPLOAD_CONSTRUCT_OPTION = "u";
- private static final String DIRECTORY_OPTION = "d";
- private static final String OVERWRITE_OPTION = "o";
- private static final String VERBOSE_OPTION = "v";
- private static final String DELETE = "del";
-
- private static final String UPLOAD_LONG_OPTION = "upload";
- private static final String VERBOSE_LONG_OPTION = "verbose";
- private static final String OVERWRITE_LONG_OPTION = "overwrite";
- private static final String DIRECTORY_LONG_OPTION = "directory";
+ public static final String UPLOAD_CONSTRUCT_OPTION = "u";
+ public static final String DIRECTORY_OPTION = "d";
+ public static final String OVERWRITE_OPTION = "o";
+ public static final String VERBOSE_OPTION = "v";
+ public static final String DELETE = "del";
+
+ public static final String UPLOAD_LONG_OPTION = "upload";
+ public static final String VERBOSE_LONG_OPTION = "verbose";
+ public static final String OVERWRITE_LONG_OPTION = "overwrite";
+ public static final String DIRECTORY_LONG_OPTION = "directory";
private static final Logger log = org.apache.logging.log4j.LogManager.getLogger();
diff --git a/kb-importer/src/main/java/org/eclipse/steady/kb/task/ImportAffectedLibraries.java b/kb-importer/src/main/java/org/eclipse/steady/kb/task/ImportAffectedLibraries.java
index 9aff36f40..3d471ea8d 100755
--- a/kb-importer/src/main/java/org/eclipse/steady/kb/task/ImportAffectedLibraries.java
+++ b/kb-importer/src/main/java/org/eclipse/steady/kb/task/ImportAffectedLibraries.java
@@ -26,6 +26,7 @@
import org.apache.logging.log4j.Logger;
import org.eclipse.steady.backend.BackendConnectionException;
import org.eclipse.steady.backend.BackendConnector;
+import org.eclipse.steady.kb.command.Import;
import org.eclipse.steady.kb.command.Command;
import org.eclipse.steady.kb.model.Artifact;
import org.eclipse.steady.kb.model.Vulnerability;
@@ -45,8 +46,7 @@
*
*/
public class ImportAffectedLibraries implements Task {
- private static final String OVERWRITE_OPTION = "o";
- private static final String DELETE = "del";
+
private static final Logger log = org.apache.logging.log4j.LogManager.getLogger();
/** {@inheritDoc} */
@@ -57,7 +57,7 @@ public void execute(
if (artifacts == null || artifacts.isEmpty()) {
return;
}
- if (args.containsKey(DELETE) && (boolean) args.get(DELETE)) {
+ if (args.containsKey(Import.DELETE) && (boolean) args.get(Import.DELETE)) {
backendConnector.deletePatchEvalResults(vuln.getVulnId(), AffectedVersionSource.KAYBEE);
}
@@ -75,7 +75,7 @@ public void execute(
vuln.getVulnId(), purlGroup, purlArtifact, purlVersion, AffectedVersionSource.KAYBEE);
if (affectedLibs != null && affectedLibs.length > 0) {
AffectedLibrary affectedLibrary = affectedLibs[0];
- Boolean overwrite = (Boolean) args.get(OVERWRITE_OPTION);
+ Boolean overwrite = (Boolean) args.get(Import.OVERWRITE_OPTION);
if (overwrite || affectedLibrary.getAffected() == null) {
setAfftectedLib(artifact, affectedLibrary);
affectedLibsToUpsert.add(affectedLibrary);
diff --git a/kb-importer/src/main/java/org/eclipse/steady/kb/task/ImportVulnerability.java b/kb-importer/src/main/java/org/eclipse/steady/kb/task/ImportVulnerability.java
index 0fe815553..a2474d5b5 100755
--- a/kb-importer/src/main/java/org/eclipse/steady/kb/task/ImportVulnerability.java
+++ b/kb-importer/src/main/java/org/eclipse/steady/kb/task/ImportVulnerability.java
@@ -38,6 +38,7 @@
import org.eclipse.steady.backend.BackendConnectionException;
import org.eclipse.steady.backend.BackendConnector;
import org.eclipse.steady.kb.command.Command;
+import org.eclipse.steady.kb.command.Import;
import org.eclipse.steady.kb.model.Commit;
import org.eclipse.steady.kb.model.Note;
import org.eclipse.steady.kb.model.Vulnerability;
@@ -53,10 +54,6 @@
* ImportVulnerability class.
*/
public class ImportVulnerability implements Task {
- private static final String OVERWRITE_OPTION = "o";
- private static final String DIRECTORY_OPTION = "d";
- private static final String VERBOSE_OPTION = "v";
- private static final String DELETE = "del";
private static final Logger log = org.apache.logging.log4j.LogManager.getLogger();
private BackendConnector backendConnector = null;
@@ -68,15 +65,13 @@ public void execute(
String vulnId = vuln.getVulnId();
this.backendConnector = _backendConnector;
- if (args.containsKey(DELETE) && (boolean) args.get(DELETE)) {
- backendConnector.deleteBug(vuln.getVulnId());
- } else if (backendConnector.isBugExisting(vuln.getVulnId())) {
+ if (backendConnector.isBugExisting(vuln.getVulnId())) {
log.info("Bug [{}] already exists in backend, analysis will be skipped", vuln.getVulnId());
return;
}
List commits = new ArrayList();
- File file = new File((String) args.get(DIRECTORY_OPTION));
+ File file = new File((String) args.get(Import.DIRECTORY_OPTION));
File commitDirs[] =
file.listFiles(
@@ -101,7 +96,7 @@ public boolean accept(File file) {
Map> allChanges = new HashMap>();
for (Commit commit : commits) {
changes = ConstructSet.identifyConstructChanges(commit, allChanges);
- if ((Boolean) args.get(VERBOSE_OPTION)) {
+ if ((Boolean) args.get(Import.VERBOSE_OPTION)) {
for (ConstructChange chg : changes) {
log.info(chg.toString());
}
From bbd4116cdde426a877675bdc307a941b90b61bf9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pedro=20Galv=C3=A3o?=
Date: Fri, 8 Apr 2022 11:20:12 +0200
Subject: [PATCH 07/83] Removed skip condition in ImportVulnerability and
changed tests accordingly
---
.../org/eclipse/steady/kb/command/Import.java | 14 ++++++++--
.../steady/kb/task/ImportVulnerability.java | 5 ----
.../eclipse/steady/kb/command/ImportTest.java | 26 +++++++++++++++++++
.../kb/task/TestImportVulnerability.java | 14 ----------
4 files changed, 38 insertions(+), 21 deletions(-)
diff --git a/kb-importer/src/main/java/org/eclipse/steady/kb/command/Import.java b/kb-importer/src/main/java/org/eclipse/steady/kb/command/Import.java
index edd4cbaad..0be2973ed 100755
--- a/kb-importer/src/main/java/org/eclipse/steady/kb/command/Import.java
+++ b/kb-importer/src/main/java/org/eclipse/steady/kb/command/Import.java
@@ -59,6 +59,16 @@ public class Import implements Command {
private static final Logger log = org.apache.logging.log4j.LogManager.getLogger();
+ private BackendConnector backendConnector;
+
+ public Import() {
+ this.backendConnector = BackendConnector.getInstance();
+ }
+
+ public Import(BackendConnector backendConnector) {
+ this.backendConnector = backendConnector;
+ }
+
/** {@inheritDoc} */
@Override
public Command.NAME getCommandName() {
@@ -121,7 +131,7 @@ private void importVuln(HashMap args, String dirPath) {
String vulnId = vuln.getVulnId();
boolean bugExists = false;
try {
- bugExists = BackendConnector.getInstance().isBugExisting(vulnId);
+ bugExists = this.backendConnector.isBugExisting(vulnId);
} catch (BackendConnectionException e) {
log.error("Can't connect to the Backend");
return;
@@ -142,7 +152,7 @@ private void importVuln(HashMap args, String dirPath) {
for (Task task : importTasks) {
try {
args.put(DIRECTORY_OPTION, dirPath);
- task.execute(vuln, args, BackendConnector.getInstance());
+ task.execute(vuln, args, backendConnector);
} catch (Exception e) {
log.error(
"Got ["
diff --git a/kb-importer/src/main/java/org/eclipse/steady/kb/task/ImportVulnerability.java b/kb-importer/src/main/java/org/eclipse/steady/kb/task/ImportVulnerability.java
index a2474d5b5..34b2aa366 100755
--- a/kb-importer/src/main/java/org/eclipse/steady/kb/task/ImportVulnerability.java
+++ b/kb-importer/src/main/java/org/eclipse/steady/kb/task/ImportVulnerability.java
@@ -65,11 +65,6 @@ public void execute(
String vulnId = vuln.getVulnId();
this.backendConnector = _backendConnector;
- if (backendConnector.isBugExisting(vuln.getVulnId())) {
- log.info("Bug [{}] already exists in backend, analysis will be skipped", vuln.getVulnId());
- return;
- }
-
List commits = new ArrayList();
File file = new File((String) args.get(Import.DIRECTORY_OPTION));
diff --git a/kb-importer/src/test/java/org/eclipse/steady/kb/command/ImportTest.java b/kb-importer/src/test/java/org/eclipse/steady/kb/command/ImportTest.java
index 5146fbcf1..0ab7d056b 100755
--- a/kb-importer/src/test/java/org/eclipse/steady/kb/command/ImportTest.java
+++ b/kb-importer/src/test/java/org/eclipse/steady/kb/command/ImportTest.java
@@ -17,12 +17,23 @@
* SPDX-FileCopyrightText: Copyright (c) 2018-2020 SAP SE or an SAP affiliate company and Eclipse Steady contributors
*/
package org.eclipse.steady.kb.command;
+import org.eclipse.steady.kb.task.MockBackConnector;
+import org.eclipse.steady.shared.json.model.AffectedLibrary;
+import org.eclipse.steady.kb.model.Vulnerability;
+import org.eclipse.steady.kb.util.Metadata;
+import com.fasterxml.jackson.databind.ObjectMapper;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.assertNull;
import java.util.HashMap;
+import java.util.List;
import org.apache.commons.cli.Options;
+
+import java.io.IOException;
import org.eclipse.steady.kb.exception.ValidationException;
+import com.google.gson.JsonSyntaxException;
+import org.eclipse.steady.backend.BackendConnectionException;
import org.junit.Test;
public class ImportTest {
@@ -52,4 +63,19 @@ public void validationFail() throws ValidationException {
args.put("d", "invalidDir");
command.validate(args);
}
+
+ @Test
+ public void testImportSkipExistingBug()
+ throws JsonSyntaxException, IOException, BackendConnectionException {
+ Vulnerability vuln = new Vulnerability();
+ vuln.setVulnId("CVE-TEST01");
+ MockBackConnector mockBackendConnector = new MockBackConnector();
+ HashMap args = new HashMap();
+ args.put("o", false);
+ args.put("v", false);
+ Import command = new Import(mockBackendConnector);
+ command.run(args);
+ assertNull(mockBackendConnector.getUploadJson());
+ }
+
}
diff --git a/kb-importer/src/test/java/org/eclipse/steady/kb/task/TestImportVulnerability.java b/kb-importer/src/test/java/org/eclipse/steady/kb/task/TestImportVulnerability.java
index 0bae728f7..30b7d2c71 100644
--- a/kb-importer/src/test/java/org/eclipse/steady/kb/task/TestImportVulnerability.java
+++ b/kb-importer/src/test/java/org/eclipse/steady/kb/task/TestImportVulnerability.java
@@ -58,20 +58,6 @@ public void testImportVuln() throws JsonSyntaxException, IOException, BackendCon
assertNotNull(bug.getDescription());
}
- @Test
- public void testImportVulnSkipExistingBug()
- throws JsonSyntaxException, IOException, BackendConnectionException {
- Vulnerability vuln = new Vulnerability();
- vuln.setVulnId("CVE-TEST01");
- MockBackConnector mockBackendConnector = new MockBackConnector();
- HashMap args = new HashMap();
- args.put("o", false);
- args.put("v", false);
- ImportVulnerability importVuln = new ImportVulnerability();
- importVuln.execute(vuln, args, mockBackendConnector);
- assertNull(mockBackendConnector.getUploadJson());
- }
-
@AfterClass
public static void cleanup() {
try {
From c0ea5081ffae02d5547910b23fe44b26890070b9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pedro=20Galv=C3=A3o?=
Date: Fri, 8 Apr 2022 11:37:56 +0200
Subject: [PATCH 08/83] Fixed code style
---
java-files.txt | 597 ++++++++++++++++++
.../eclipse/steady/kb/command/ImportTest.java | 6 +-
.../kb/task/TestImportVulnerability.java | 1 -
non-compliant-files.txt | 2 +
pom.xml | 2 +-
5 files changed, 601 insertions(+), 7 deletions(-)
create mode 100644 java-files.txt
create mode 100644 non-compliant-files.txt
diff --git a/java-files.txt b/java-files.txt
new file mode 100644
index 000000000..f1657c7d3
--- /dev/null
+++ b/java-files.txt
@@ -0,0 +1,597 @@
+shared/src/main/java/org/eclipse/steady/shared/cache/Cache.java
+shared/src/main/java/org/eclipse/steady/shared/cache/ObjectFetcher.java
+shared/src/main/java/org/eclipse/steady/shared/cache/CacheException.java
+shared/src/main/java/org/eclipse/steady/shared/util/Constants.java
+shared/src/main/java/org/eclipse/steady/shared/util/ProgressTracker.java
+shared/src/main/java/org/eclipse/steady/shared/util/AbstractFileSearch.java
+shared/src/main/java/org/eclipse/steady/shared/util/StringUtil.java
+shared/src/main/java/org/eclipse/steady/shared/util/StringList.java
+shared/src/main/java/org/eclipse/steady/shared/util/VulasConfiguration.java
+shared/src/main/java/org/eclipse/steady/shared/util/CollectionUtil.java
+shared/src/main/java/org/eclipse/steady/shared/util/DigestUtil.java
+shared/src/main/java/org/eclipse/steady/shared/util/StopWatch.java
+shared/src/main/java/org/eclipse/steady/shared/util/DependencyUtil.java
+shared/src/main/java/org/eclipse/steady/shared/util/ConstructIdUtil.java
+shared/src/main/java/org/eclipse/steady/shared/util/ThreadUtil.java
+shared/src/main/java/org/eclipse/steady/shared/util/DirnamePatternSearch.java
+shared/src/main/java/org/eclipse/steady/shared/util/MemoryMonitor.java
+shared/src/main/java/org/eclipse/steady/shared/util/DirUtil.java
+shared/src/main/java/org/eclipse/steady/shared/util/DirWithFileSearch.java
+shared/src/main/java/org/eclipse/steady/shared/util/FilenamePatternSearch.java
+shared/src/main/java/org/eclipse/steady/shared/util/package-info.java
+shared/src/main/java/org/eclipse/steady/shared/util/FileUtil.java
+shared/src/main/java/org/eclipse/steady/shared/util/FileSearch.java
+shared/src/main/java/org/eclipse/steady/shared/enums/AffectedVersionSource.java
+shared/src/main/java/org/eclipse/steady/shared/enums/GoalType.java
+shared/src/main/java/org/eclipse/steady/shared/enums/BugOrigin.java
+shared/src/main/java/org/eclipse/steady/shared/enums/ExportFormat.java
+shared/src/main/java/org/eclipse/steady/shared/enums/VulnDepOrigin.java
+shared/src/main/java/org/eclipse/steady/shared/enums/DigestAlgorithm.java
+shared/src/main/java/org/eclipse/steady/shared/enums/PropertySource.java
+shared/src/main/java/org/eclipse/steady/shared/enums/ExportConfiguration.java
+shared/src/main/java/org/eclipse/steady/shared/enums/ProgrammingLanguage.java
+shared/src/main/java/org/eclipse/steady/shared/enums/ContentMaturityLevel.java
+shared/src/main/java/org/eclipse/steady/shared/enums/CoverageStatus.java
+shared/src/main/java/org/eclipse/steady/shared/enums/ConstructType.java
+shared/src/main/java/org/eclipse/steady/shared/enums/DependencyOrigin.java
+shared/src/main/java/org/eclipse/steady/shared/enums/package-info.java
+shared/src/main/java/org/eclipse/steady/shared/enums/GoalClient.java
+shared/src/main/java/org/eclipse/steady/shared/enums/Scope.java
+shared/src/main/java/org/eclipse/steady/shared/enums/PathSource.java
+shared/src/main/java/org/eclipse/steady/shared/enums/ConstructChangeType.java
+shared/src/main/java/org/eclipse/steady/shared/json/JsonSyntaxException.java
+shared/src/main/java/org/eclipse/steady/shared/json/JsonReader.java
+shared/src/main/java/org/eclipse/steady/shared/json/JsonBuilder.java
+shared/src/main/java/org/eclipse/steady/shared/json/JacksonUtil.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/AffectedLibrary.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/mavenCentral/MavenSearchResponse.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/mavenCentral/ResponseDoc.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/mavenCentral/MavenVersionsSearch.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/ConstructId.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/ConstructIdFilter.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/Space.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/ConstructChange.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/ExemptionUnassessed.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/Library.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/AffectedConstructChange.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/Application.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/Dependency.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/PathNode.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/KeyValue.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/diff/ClassModification.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/diff/ClassDiffResult.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/diff/JarDiffResult.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/VulnerableDependency.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/ExemptionSet.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/FileChange.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/ExemptionBug.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/Property.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/Bug.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/Tenant.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/LibraryId.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/Artifact.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/ExemptionScope.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/Version.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/view/Views.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/IExemption.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/package-info.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/Trace.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/ConstructChangeInDependency.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/metrics/Metrics.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/metrics/AbstractMetric.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/metrics/Counter.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/metrics/Ratio.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/metrics/package-info.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/metrics/Percentage.java
+shared/src/main/java/org/eclipse/steady/shared/json/JsonWriter.java
+shared/src/main/java/org/eclipse/steady/shared/package-info.java
+shared/src/main/java/org/eclipse/steady/shared/connectivity/PathBuilder.java
+shared/src/main/java/org/eclipse/steady/shared/connectivity/Service.java
+shared/src/main/java/org/eclipse/steady/shared/connectivity/package-info.java
+shared/src/main/java/org/eclipse/steady/shared/connectivity/ServiceConnectionException.java
+lang/src/main/java/org/eclipse/steady/malice/ZipSlipAnalyzer.java
+lang/src/main/java/org/eclipse/steady/malice/MaliciousnessAnalyzer.java
+lang/src/main/java/org/eclipse/steady/malice/MaliciousnessAnalysisResult.java
+lang/src/main/java/org/eclipse/steady/malice/MaliciousnessAnalyzerLoop.java
+lang/src/main/java/org/eclipse/steady/core/util/SignatureConfiguration.java
+lang/src/main/java/org/eclipse/steady/core/util/CoreConfiguration.java
+lang/src/main/java/org/eclipse/steady/core/util/package-info.java
+lang/src/main/java/org/eclipse/steady/ConstructId.java
+lang/src/main/java/org/eclipse/steady/Construct.java
+lang/src/main/java/org/eclipse/steady/report/Report.java
+lang/src/main/java/org/eclipse/steady/FileAnalysisException.java
+lang/src/main/java/org/eclipse/steady/goals/SpaceNewGoal.java
+lang/src/main/java/org/eclipse/steady/goals/AbstractAppGoal.java
+lang/src/main/java/org/eclipse/steady/goals/GoalExecutor.java
+lang/src/main/java/org/eclipse/steady/goals/SpaceDelGoal.java
+lang/src/main/java/org/eclipse/steady/goals/TestGoal.java
+lang/src/main/java/org/eclipse/steady/goals/ReportException.java
+lang/src/main/java/org/eclipse/steady/goals/GoalExecutionException.java
+lang/src/main/java/org/eclipse/steady/goals/SpaceCleanGoal.java
+lang/src/main/java/org/eclipse/steady/goals/BomGoal.java
+lang/src/main/java/org/eclipse/steady/goals/AbstractGoal.java
+lang/src/main/java/org/eclipse/steady/goals/ExecutionObserver.java
+lang/src/main/java/org/eclipse/steady/goals/GoalConfigurationException.java
+lang/src/main/java/org/eclipse/steady/goals/CheckverGoal.java
+lang/src/main/java/org/eclipse/steady/goals/AbstractSpaceGoal.java
+lang/src/main/java/org/eclipse/steady/goals/ReportGoal.java
+lang/src/main/java/org/eclipse/steady/goals/GoalFactory.java
+lang/src/main/java/org/eclipse/steady/goals/UploadGoal.java
+lang/src/main/java/org/eclipse/steady/goals/SequenceGoal.java
+lang/src/main/java/org/eclipse/steady/goals/GoalContext.java
+lang/src/main/java/org/eclipse/steady/goals/package-info.java
+lang/src/main/java/org/eclipse/steady/goals/CleanGoal.java
+lang/src/main/java/org/eclipse/steady/goals/SpaceModGoal.java
+lang/src/main/java/org/eclipse/steady/ConstructChange.java
+lang/src/main/java/org/eclipse/steady/DirAnalyzer.java
+lang/src/main/java/org/eclipse/steady/tasks/AbstractTask.java
+lang/src/main/java/org/eclipse/steady/tasks/AbstractBomTask.java
+lang/src/main/java/org/eclipse/steady/tasks/ReachTask.java
+lang/src/main/java/org/eclipse/steady/tasks/Task.java
+lang/src/main/java/org/eclipse/steady/tasks/package-info.java
+lang/src/main/java/org/eclipse/steady/tasks/BomTask.java
+lang/src/main/java/org/eclipse/steady/FileAnalyzer.java
+lang/src/main/java/org/eclipse/steady/sign/SignatureAnalysis.java
+lang/src/main/java/org/eclipse/steady/sign/SignatureFactory.java
+lang/src/main/java/org/eclipse/steady/sign/Signature.java
+lang/src/main/java/org/eclipse/steady/sign/SignatureChange.java
+lang/src/main/java/org/eclipse/steady/sign/SignatureComparator.java
+lang/src/main/java/org/eclipse/steady/backend/BackendConnector.java
+lang/src/main/java/org/eclipse/steady/backend/requests/StatusCondition.java
+lang/src/main/java/org/eclipse/steady/backend/requests/HttpRequest.java
+lang/src/main/java/org/eclipse/steady/backend/requests/HttpRequestList.java
+lang/src/main/java/org/eclipse/steady/backend/requests/PutLibraryCondition.java
+lang/src/main/java/org/eclipse/steady/backend/requests/RequestRepeater.java
+lang/src/main/java/org/eclipse/steady/backend/requests/ConditionalHttpRequest.java
+lang/src/main/java/org/eclipse/steady/backend/requests/ContentCondition.java
+lang/src/main/java/org/eclipse/steady/backend/requests/BasicHttpRequest.java
+lang/src/main/java/org/eclipse/steady/backend/requests/AbstractHttpRequest.java
+lang/src/main/java/org/eclipse/steady/backend/requests/ResponseCondition.java
+lang/src/main/java/org/eclipse/steady/backend/requests/package-info.java
+lang/src/main/java/org/eclipse/steady/backend/HttpResponse.java
+lang/src/main/java/org/eclipse/steady/backend/BackendConnectionException.java
+lang/src/main/java/org/eclipse/steady/backend/EntityNotFoundInBackendException.java
+lang/src/main/java/org/eclipse/steady/backend/HttpMethod.java
+lang/src/main/java/org/eclipse/steady/FileAnalyzerFactory.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/slice/SliceInstrumentor.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/IInstrumentor.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/InstrumentationControl.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/Loader.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/UploadScheduler.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/ClassVisitor.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/InstrumentorFactory.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/PrintlnInstrumentor.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/LoaderFilter.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/ClassNameLoaderFilter.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/touch/ConstructIdUtil.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/touch/TouchPointInstrumentor.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/touch/TouchPointCollector.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/ClassPoolUpdater.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/ExecutionMonitor.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/trace/AbstractTraceInstrumentor.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/trace/PathNode.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/trace/StackTraceInstrumentor.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/trace/TraceCollector.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/trace/StackTraceUtil.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/trace/ConstructUsage.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/trace/SingleStackTraceInstrumentor.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/trace/SingleTraceInstrumentor.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/AbstractInstrumentor.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/DynamicTransformer.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/LoaderHierarchy.java
+lang-java/src/main/java/org/eclipse/steady/java/JavaId.java
+lang-java/src/main/java/org/eclipse/steady/java/JavaInterfaceId.java
+lang-java/src/main/java/org/eclipse/steady/java/goals/InstrGoal.java
+lang-java/src/main/java/org/eclipse/steady/java/goals/CheckBytecodeGoal.java
+lang-java/src/main/java/org/eclipse/steady/java/JavaClassInit.java
+lang-java/src/main/java/org/eclipse/steady/java/WarAnalyzer.java
+lang-java/src/main/java/org/eclipse/steady/java/JavaFileAnalyzer2.java
+lang-java/src/main/java/org/eclipse/steady/java/JavaClassId.java
+lang-java/src/main/java/org/eclipse/steady/java/PomParser.java
+lang-java/src/main/java/org/eclipse/steady/java/JavaPackageId.java
+lang-java/src/main/java/org/eclipse/steady/java/bytecode/BytecodeComparator.java
+lang-java/src/main/java/org/eclipse/steady/java/bytecode/ConstructBytecodeASTManager.java
+lang-java/src/main/java/org/eclipse/steady/java/SpringBootAnalyzer.java
+lang-java/src/main/java/org/eclipse/steady/java/JavaMethodId.java
+lang-java/src/main/java/org/eclipse/steady/java/AarAnalyzer.java
+lang-java/src/main/java/org/eclipse/steady/java/JarEntryWriter.java
+lang-java/src/main/java/org/eclipse/steady/java/tasks/JavaBomTask.java
+lang-java/src/main/java/org/eclipse/steady/java/tasks/package-info.java
+lang-java/src/main/java/org/eclipse/steady/java/decompiler/ProcyonDecompiler.java
+lang-java/src/main/java/org/eclipse/steady/java/decompiler/IDecompiler.java
+lang-java/src/main/java/org/eclipse/steady/java/ClassFileAnalyzer.java
+lang-java/src/main/java/org/eclipse/steady/java/JarAnalysisException.java
+lang-java/src/main/java/org/eclipse/steady/java/ArchiveAnalysisManager.java
+lang-java/src/main/java/org/eclipse/steady/java/JarAnalyzer.java
+lang-java/src/main/java/org/eclipse/steady/java/JavaConstructorId.java
+lang-java/src/main/java/org/eclipse/steady/java/sign/UniqueNameNormalizer.java
+lang-java/src/main/java/org/eclipse/steady/java/sign/gson/ASTSignatureDeserializer.java
+lang-java/src/main/java/org/eclipse/steady/java/sign/gson/ASTConstructBodySignatureSerializer.java
+lang-java/src/main/java/org/eclipse/steady/java/sign/gson/ASTConstructBodySignatureDeserializer.java
+lang-java/src/main/java/org/eclipse/steady/java/sign/gson/GsonHelper.java
+lang-java/src/main/java/org/eclipse/steady/java/sign/gson/ASTSignatureChangeDeserializer.java
+lang-java/src/main/java/org/eclipse/steady/java/sign/gson/ASTSignatureChangeSerializer.java
+lang-java/src/main/java/org/eclipse/steady/java/sign/gson/package-info.java
+lang-java/src/main/java/org/eclipse/steady/java/sign/JavaSignatureFactory.java
+lang-java/src/main/java/org/eclipse/steady/java/sign/ASTConstructBodySignature.java
+lang-java/src/main/java/org/eclipse/steady/java/sign/ASTSignatureChange.java
+lang-java/src/main/java/org/eclipse/steady/java/sign/CompilationUtils.java
+lang-java/src/main/java/org/eclipse/steady/java/sign/DistillerUtil.java
+lang-java/src/main/java/org/eclipse/steady/java/sign/ASTSignatureComparator.java
+lang-java/src/main/java/org/eclipse/steady/java/sign/ASTUtil.java
+lang-java/src/main/java/org/eclipse/steady/java/sign/package-info.java
+lang-java/src/main/java/org/eclipse/steady/java/sign/ASTSignature.java
+lang-java/src/main/java/org/eclipse/steady/java/JavaEnumId.java
+lang-java/src/main/java/org/eclipse/steady/java/JarWriter.java
+lang-java-reach/src/main/java/org/eclipse/steady/cg/A2CGoal.java
+lang-java-reach/src/main/java/org/eclipse/steady/cg/MethodNameFilter.java
+lang-java-reach/src/main/java/org/eclipse/steady/cg/T2CGoal.java
+lang-java-reach/src/main/java/org/eclipse/steady/cg/ReachabilityConfiguration.java
+lang-java-reach/src/main/java/org/eclipse/steady/cg/PathSimilarity.java
+lang-java-reach/src/main/java/org/eclipse/steady/cg/PrunedGraphGetPaths.java
+lang-java-reach/src/main/java/org/eclipse/steady/cg/Callgraph.java
+lang-java-reach/src/main/java/org/eclipse/steady/cg/CallgraphPathSearch.java
+lang-java-reach/src/main/java/org/eclipse/steady/cg/DepthFirstGetPaths.java
+lang-java-reach/src/main/java/org/eclipse/steady/cg/CallgraphReachableSearch.java
+lang-java-reach/src/main/java/org/eclipse/steady/cg/ReachabilityAnalyzer.java
+lang-java-reach/src/main/java/org/eclipse/steady/cg/spi/CallgraphConstructorFactory.java
+lang-java-reach/src/main/java/org/eclipse/steady/cg/spi/ICallgraphConstructor.java
+lang-java-reach/src/main/java/org/eclipse/steady/cg/NodeMetaInformation.java
+lang-java-reach/src/main/java/org/eclipse/steady/cg/AbstractGetPaths.java
+lang-java-reach/src/main/java/org/eclipse/steady/cg/CallgraphConstructException.java
+lang-java-reach/src/main/java/org/eclipse/steady/cg/AbstractReachGoal.java
+lang-java-reach-wala/src/main/java/org/eclipse/steady/cg/wala/WalaCallgraphConstructor.java
+lang-java-reach-soot/src/main/java/org/eclipse/steady/cg/soot/CustomEntryPointCreator.java
+lang-java-reach-soot/src/main/java/org/eclipse/steady/cg/soot/SootConfiguration.java
+lang-java-reach-soot/src/main/java/org/eclipse/steady/cg/soot/SootCallgraphConstructor.java
+lang-python/src/main/java/org/eclipse/steady/python/PythonArchiveAnalyzer.java
+lang-python/src/main/java/org/eclipse/steady/python/virtualenv/VirtualenvWrapper.java
+lang-python/src/main/java/org/eclipse/steady/python/virtualenv/package-info.java
+lang-python/src/main/java/org/eclipse/steady/python/PythonId.java
+lang-python/src/main/java/org/eclipse/steady/python/utils/PythonConfiguration.java
+lang-python/src/main/java/org/eclipse/steady/python/pip/PipWrapper.java
+lang-python/src/main/java/org/eclipse/steady/python/pip/PyWrapper.java
+lang-python/src/main/java/org/eclipse/steady/python/pip/PipInstalledPackage.java
+lang-python/src/main/java/org/eclipse/steady/python/pip/package-info.java
+lang-python/src/main/java/org/eclipse/steady/python/tasks/PythonBomTask.java
+lang-python/src/main/java/org/eclipse/steady/python/tasks/package-info.java
+lang-python/src/main/java/org/eclipse/steady/python/Python3FileAnalyzer.java
+lang-python/src/main/java/org/eclipse/steady/python/ProcessWrapper.java
+lang-python/src/main/java/org/eclipse/steady/python/PythonFileAnalyzer.java
+lang-python/src/main/java/org/eclipse/steady/python/ProcessWrapperException.java
+lang-python/src/main/java/org/eclipse/steady/python/Python335FileAnalyzer.java
+lang-python/src/main/java/org/eclipse/steady/python/sign/PythonSignatureFactory.java
+lang-python/src/main/java/org/eclipse/steady/python/sign/PythonConstructDigestSerializer.java
+lang-python/src/main/java/org/eclipse/steady/python/sign/PythonConstructDigest.java
+lang-python/src/main/java/org/eclipse/steady/python/sign/PythonConstructDigestDeserializer.java
+repo-client/src/main/java/org/eclipse/steady/svn/SvnClient.java
+repo-client/src/main/java/org/eclipse/steady/git/MyProxySelector.java
+repo-client/src/main/java/org/eclipse/steady/git/GitClient.java
+repo-client/src/main/java/org/eclipse/steady/vcs/RepoMismatchException.java
+repo-client/src/main/java/org/eclipse/steady/vcs/FileChange.java
+repo-client/src/main/java/org/eclipse/steady/vcs/IVCSClient.java
+repo-client/src/main/java/org/eclipse/steady/vcs/NoRepoClientException.java
+repo-client/src/main/java/org/eclipse/steady/package-info.java
+patch-analyzer/src/main/java/org/eclipse/steady/patcha/VulasProxySelector.java
+patch-analyzer/src/main/java/org/eclipse/steady/patcha/PatchAnalyzer.java
+patch-analyzer/src/main/java/org/eclipse/steady/patcha/FileComparator.java
+patch-analyzer/src/main/java/org/eclipse/steady/patcha/PatchaConfiguration.java
+patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/LibraryAnalyzerThread2.java
+patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/PE_Run.java
+patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/representation/ConstructPathAssessment2.java
+patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/representation/ArtifactLibrary.java
+patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/representation/LidResult2.java
+patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/representation/Intersection2.java
+patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/representation/ReleaseTree.java
+patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/representation/ConstructPathLibResult2.java
+patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/representation/OrderedCCperConstructPath2.java
+patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/representation/ArtifactResult2.java
+patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/representation/OverallConstructChange.java
+patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/ByteCodeComparator.java
+patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/utils/CSVHelper2.java
+patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/utils/PEConfiguration.java
+patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/BugLibManager.java
+patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/BugLibAnalyzer.java
+patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/Main.java
+patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/BytecodeAnalyzer.java
+kb-importer/src/main/java/org/eclipse/steady/kb/task/ImportAffectedLibraries.java
+kb-importer/src/main/java/org/eclipse/steady/kb/task/ImportVulnerability.java
+kb-importer/src/main/java/org/eclipse/steady/kb/task/Task.java
+kb-importer/src/main/java/org/eclipse/steady/kb/task/TaskProvider.java
+kb-importer/src/main/java/org/eclipse/steady/kb/util/ConstructSet.java
+kb-importer/src/main/java/org/eclipse/steady/kb/util/Metadata.java
+kb-importer/src/main/java/org/eclipse/steady/kb/util/FileComparator.java
+kb-importer/src/main/java/org/eclipse/steady/kb/exception/ValidationException.java
+kb-importer/src/main/java/org/eclipse/steady/kb/exception/CommandLineParserException.java
+kb-importer/src/main/java/org/eclipse/steady/kb/command/CommandParser.java
+kb-importer/src/main/java/org/eclipse/steady/kb/command/CommandExecutor.java
+kb-importer/src/main/java/org/eclipse/steady/kb/command/Help.java
+kb-importer/src/main/java/org/eclipse/steady/kb/command/Import.java
+kb-importer/src/main/java/org/eclipse/steady/kb/command/Version.java
+kb-importer/src/main/java/org/eclipse/steady/kb/command/Command.java
+kb-importer/src/main/java/org/eclipse/steady/kb/Main.java
+kb-importer/src/main/java/org/eclipse/steady/kb/model/Note.java
+kb-importer/src/main/java/org/eclipse/steady/kb/model/Vulnerability.java
+kb-importer/src/main/java/org/eclipse/steady/kb/model/Commit.java
+kb-importer/src/main/java/org/eclipse/steady/kb/model/Artifact.java
+cli-scanner/src/main/java/org/eclipse/steady/cli/VulasCli.java
+cli-scanner/src/main/java/org/eclipse/steady/cli/package-info.java
+plugin-maven/src/main/java/org/eclipse/steady/java/mvn/MvnPluginA2C.java
+plugin-maven/src/main/java/org/eclipse/steady/java/mvn/MvnPluginClean.java
+plugin-maven/src/main/java/org/eclipse/steady/java/mvn/AbstractVulasMojo.java
+plugin-maven/src/main/java/org/eclipse/steady/java/mvn/AbstractVulasSpaceMojo.java
+plugin-maven/src/main/java/org/eclipse/steady/java/mvn/MvnPluginSpaceClean.java
+plugin-maven/src/main/java/org/eclipse/steady/java/mvn/MvnPluginCheckBytecode.java
+plugin-maven/src/main/java/org/eclipse/steady/java/mvn/MvnPluginBom.java
+plugin-maven/src/main/java/org/eclipse/steady/java/mvn/MvnPluginUpload.java
+plugin-maven/src/main/java/org/eclipse/steady/java/mvn/MvnPluginInstr.java
+plugin-maven/src/main/java/org/eclipse/steady/java/mvn/VulasAgentMojo.java
+plugin-maven/src/main/java/org/eclipse/steady/java/mvn/MvnPluginReport.java
+plugin-maven/src/main/java/org/eclipse/steady/java/mvn/MvnPluginT2C.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/dependencyfinder/ClassDiffVisitor.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/dependencyfinder/JarDiffCmd.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/dependencyfinder/JarDiffVisitor.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/rest/ConstructController.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/rest/ClassController.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/rest/ArtifactController.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/rest/ConfigurationController.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/rest/MainController.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/util/RepositoryWrapper.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/util/ClassDownloader.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/util/RepositoryDispatcher.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/util/HeaderEcho.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/util/FileAnalyzerFetcher.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/util/RepoException.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/util/ArtifactDownloader.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/util/MavenCentralWrapper.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/util/NexusWrapper.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/util/PypiWrapper.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/util/CacheFilter.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/package-info.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/nexus/NexusLibId.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/nexus/NexusArtifactInfoResourceResponse.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/nexus/NexusData.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/nexus/NexusSearch.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/nexus/NexusArtifact.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/nexus/NexusResponse.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/nexus/NexusArtifactResolution.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/nexus/NexusDescribeInfo.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/nexus/NexusNGData.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/nexus/NexusResolvedArtifact.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/nexus/NexusSearchNGResponse.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/pypi/PypiRelease.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/pypi/PypiResponse.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/pypi/PypiInfo.java
+rest-backend/src/main/java/org/eclipse/steady/backend/cve/CveReader2.java
+rest-backend/src/main/java/org/eclipse/steady/backend/cve/Cve.java
+rest-backend/src/main/java/org/eclipse/steady/backend/rest/TenantController.java
+rest-backend/src/main/java/org/eclipse/steady/backend/rest/LibraryIdController.java
+rest-backend/src/main/java/org/eclipse/steady/backend/rest/ApplicationController.java
+rest-backend/src/main/java/org/eclipse/steady/backend/rest/HubIntegrationController.java
+rest-backend/src/main/java/org/eclipse/steady/backend/rest/CoverageController.java
+rest-backend/src/main/java/org/eclipse/steady/backend/rest/BugController.java
+rest-backend/src/main/java/org/eclipse/steady/backend/rest/LibraryController.java
+rest-backend/src/main/java/org/eclipse/steady/backend/rest/SpaceController.java
+rest-backend/src/main/java/org/eclipse/steady/backend/rest/ConfigurationController.java
+rest-backend/src/main/java/org/eclipse/steady/backend/rest/MainController.java
+rest-backend/src/main/java/org/eclipse/steady/backend/rest/CveController.java
+rest-backend/src/main/java/org/eclipse/steady/backend/util/SmtpClient.java
+rest-backend/src/main/java/org/eclipse/steady/backend/util/PyPiVerifier.java
+rest-backend/src/main/java/org/eclipse/steady/backend/util/MavenCentralVerifier.java
+rest-backend/src/main/java/org/eclipse/steady/backend/util/ConnectionUtil.java
+rest-backend/src/main/java/org/eclipse/steady/backend/util/VerificationException.java
+rest-backend/src/main/java/org/eclipse/steady/backend/util/ArtifactMaps.java
+rest-backend/src/main/java/org/eclipse/steady/backend/util/DependencyUtil.java
+rest-backend/src/main/java/org/eclipse/steady/backend/util/ServiceWrapper.java
+rest-backend/src/main/java/org/eclipse/steady/backend/util/TokenUtil.java
+rest-backend/src/main/java/org/eclipse/steady/backend/util/DigestVerifierEnumerator.java
+rest-backend/src/main/java/org/eclipse/steady/backend/util/CacheFilter.java
+rest-backend/src/main/java/org/eclipse/steady/backend/util/Message.java
+rest-backend/src/main/java/org/eclipse/steady/backend/util/ResultSetFilter.java
+rest-backend/src/main/java/org/eclipse/steady/backend/util/ReferenceUpdater.java
+rest-backend/src/main/java/org/eclipse/steady/backend/util/DigestVerifier.java
+rest-backend/src/main/java/org/eclipse/steady/backend/component/ApplicationExporter.java
+rest-backend/src/main/java/org/eclipse/steady/backend/component/StatisticsContributor.java
+rest-backend/src/main/java/org/eclipse/steady/backend/component/ApplicationExporterThread.java
+rest-backend/src/main/java/org/eclipse/steady/backend/package-info.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/TenantRepositoryCustom.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/BugRepositoryCustom.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/SpaceRepository.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/DependencyRepositoryCustom.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/TracesRepositoryImpl.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/GoalExecutionRepositoryImpl.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/PathRepositoryCustom.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/DependencyRepositoryImpl.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/ApplicationRepositoryCustom.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/GoalExecutionRepository.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/BugRepositoryImpl.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/PathRepositoryImpl.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/LibraryIdRepository.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/DependencyRepository.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/ApplicationRepositoryImpl.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/PathRepository.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/ConstructChangeRepository.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/TracesRepository.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/SpaceRepositoryImpl.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/TenantRepository.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/ApplicationRepository.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/PropertyRepository.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/GoalExecutionRepositoryCustom.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/AffectedLibraryRepositoryImpl.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/LibraryRepository.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/BugRepository.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/LibraryRepositoryCustom.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/TracesRepositoryCustom.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/AffectedLibraryRepository.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/AffectedLibraryRepositoryCustom.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/SpaceRepositoryCustom.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/V_AppVulndepRepository.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/LibraryRepositoryImpl.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/ConstructIdRepository.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/TenantRepositoryImpl.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/AffectedLibrary.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/ConstructId.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/ConstructIdFilter.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/Space.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/ConstructChange.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/Library.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/AffectedConstructChange.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/Application.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/DependencyIntersection.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/ConstructSearchResult.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/Dependency.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/PathNode.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/VulnerableDependency.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/Property.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/Bug.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/TouchPoint.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/GoalExecution.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/Tenant.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/LibraryId.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/DependencyUpdate.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/PackageStatistics.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/view/Views.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/Trace.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/Path.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/ConstructChangeInDependency.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/V_AppVulndep.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/ConstructChangeType.java
+plugin-gradle/src/main/java/org/eclipse/steady/java/gradle/GradlePluginReport.java
+plugin-gradle/src/main/java/org/eclipse/steady/java/gradle/GradlePluginApp.java
+plugin-gradle/src/main/java/org/eclipse/steady/java/gradle/GradlePluginClean.java
+plugin-gradle/src/main/java/org/eclipse/steady/java/gradle/VulasPluginCommon.java
+plugin-gradle/src/main/java/org/eclipse/steady/java/gradle/GradleProjectUtilities.java
+plugin-gradle/src/main/java/org/eclipse/steady/java/gradle/GradlePluginA2C.java
+plugin-gradle/src/main/java/org/eclipse/steady/java/gradle/VulasPlugin.java
+plugin-gradle/src/main/java/org/eclipse/steady/java/gradle/AbstractVulasTask.java
+shared/src/test/java/org/eclipse/steady/shared/cache/CacheTest.java
+shared/src/test/java/org/eclipse/steady/shared/categories/Slow.java
+shared/src/test/java/org/eclipse/steady/shared/categories/RequiresNetwork.java
+shared/src/test/java/org/eclipse/steady/shared/categories/Integrated.java
+shared/src/test/java/org/eclipse/steady/shared/util/DigestUtilTest.java
+shared/src/test/java/org/eclipse/steady/shared/util/VulasConfigurationTest.java
+shared/src/test/java/org/eclipse/steady/shared/util/FileSearchTest.java
+shared/src/test/java/org/eclipse/steady/shared/util/FileUtilTest.java
+shared/src/test/java/org/eclipse/steady/shared/util/StringUtilTest.java
+shared/src/test/java/org/eclipse/steady/shared/util/StopWatchTest.java
+shared/src/test/java/org/eclipse/steady/shared/util/StringListTest.java
+shared/src/test/java/org/eclipse/steady/shared/util/TestDirWithFileSearch.java
+shared/src/test/java/org/eclipse/steady/shared/util/DirUtilTest.java
+shared/src/test/java/org/eclipse/steady/shared/enums/ScopeTest.java
+shared/src/test/java/org/eclipse/steady/shared/json/VulnerableDependencyJsonTest.java
+shared/src/test/java/org/eclipse/steady/shared/json/JacksonUtilTest.java
+shared/src/test/java/org/eclipse/steady/shared/json/JsonBuilderTest.java
+shared/src/test/java/org/eclipse/steady/shared/json/model/metrics/MetricsTest.java
+shared/src/test/java/org/eclipse/steady/shared/model/generic/VersionTest.java
+shared/src/test/java/org/eclipse/steady/shared/model/ApplicationTest.java
+shared/src/test/java/org/eclipse/steady/shared/model/IExemptionTest.java
+lang/src/test/java/org/eclipse/steady/malice/ZipSlipAnalyzerTest.java
+lang/src/test/java/org/eclipse/steady/malice/MaliciousnessAnalyzerLoopTest.java
+lang/src/test/java/org/eclipse/steady/report/ReportTest.java
+lang/src/test/java/org/eclipse/steady/goals/AbstractGoalTest.java
+lang/src/test/java/org/eclipse/steady/goals/CleanGoalTest.java
+lang/src/test/java/org/eclipse/steady/goals/BomGoalTest.java
+lang/src/test/java/org/eclipse/steady/goals/SpaceNewGoalTest.java
+lang/src/test/java/org/eclipse/steady/goals/SpaceDelGoalTest.java
+lang-java/src/test/java/org/eclipse/steady/java/monitor/AbstractGoalTest.java
+lang-java/src/test/java/org/eclipse/steady/java/monitor/ClassVisitorTest.java
+lang-java/src/test/java/org/eclipse/steady/java/monitor/ConstructTransformerTest.java
+lang-java/src/test/java/org/eclipse/steady/java/ArchiveAnalysisManagerTest.java
+lang-java/src/test/java/org/eclipse/steady/java/JavaIdTest.java
+lang-java/src/test/java/org/eclipse/steady/java/PomParserTest.java
+lang-java/src/test/java/org/eclipse/steady/java/decompiler/IDecompilerTest.java
+lang-java/src/test/java/org/eclipse/steady/java/JavaFileAnalyzer2Test.java
+lang-java/src/test/java/org/eclipse/steady/java/AarAnalyzerTest.java
+lang-java/src/test/java/org/eclipse/steady/java/JarWriterTest.java
+lang-java/src/test/java/org/eclipse/steady/java/SpringBootAnalyzerTest.java
+lang-java/src/test/java/org/eclipse/steady/java/ClassFileAnalyzerTest.java
+lang-java/src/test/java/org/eclipse/steady/java/ClassPoolUpdaterTest.java
+lang-java/src/test/java/org/eclipse/steady/java/JarAnalyzerTest.java
+lang-java/src/test/java/org/eclipse/steady/java/JsonHelperTest.java
+lang-java/src/test/java/org/eclipse/steady/java/sign/StringSimilarityNGrams.java
+lang-java/src/test/java/org/eclipse/steady/java/sign/gson/ASTDeserializeSignComparatorTest.java
+lang-java/src/test/java/org/eclipse/steady/java/sign/UniqueNamePreprocessorTest.java
+lang-java/src/test/java/org/eclipse/steady/java/sign/SignatureFactoryTest.java
+lang-java/src/test/java/org/eclipse/steady/java/sign/StringSimilarityLevenshtein.java
+lang-java/src/test/java/org/eclipse/steady/java/sign/ASTSignatureComparatorTest.java
+lang-java/src/test/java/org/eclipse/steady/java/sign/StringSimilarity.java
+lang-java/src/test/java/org/eclipse/steady/java/WarAnalyzerTest.java
+lang-java/src/test/java/org/eclipse/steady/java/test/EnumTest.java
+lang-java/src/test/java/org/eclipse/steady/java/test/TestAnon.java
+lang-java/src/test/java/org/eclipse/steady/java/test/OuterClass.java
+lang-java/src/test/java/org/eclipse/steady/java/test/ConfigurationKey.java
+lang-java/src/test/java/org/eclipse/steady/java/test/Vanilla.java
+lang-java/src/test/java/org/eclipse/steady/java/test/ConfigKey.java
+lang-java/src/test/java/org/eclipse/steady/java/test/DrinkEnumExample.java
+lang-java/src/test/java/org/eclipse/steady/java/test/HttpRequestCompletionLog.java
+lang-java/src/test/java/org/eclipse/steady/java/test/TestClass$NoNestedClass.java
+lang-java/src/test/java/org/eclipse/steady/java/test/NestedDeclarationMess2.java
+lang-java/src/test/java/org/eclipse/steady/java/test/Generics.java
+lang-java/src/test/java/org/eclipse/steady/java/test/TestAgainAnon.java
+lang-java/src/test/java/org/eclipse/steady/java/test/TestInterface.java
+lang-java/src/test/java/org/eclipse/steady/java/test/HelloWorldAnonymousClasses.java
+lang-java/src/test/java/org/eclipse/steady/java/test/NestedDeclarations.java
+lang-java/src/test/java/ClassWithoutPackage.java
+lang-java/src/test/java/NestedDeclarationMess.java
+lang-java-reach/src/test/java/org/eclipse/steady/cg/CallgraphTest.java
+lang-java-reach/src/test/java/org/eclipse/steady/cg/Examples.java
+lang-java-reach/src/test/java/org/eclipse/steady/cg/CallgraphConstructorFactoryTest.java
+lang-java-reach/src/test/java/org/eclipse/steady/cg/DummyCallgraphConstructor.java
+lang-java-reach-wala/src/test/java/org/eclipse/steady/cg/wala/WalaCallGraphTest.java
+lang-java-reach-soot/src/test/java/SootCallGraphTest.java
+lang-python/src/test/java/org/eclipse/steady/python/PythonArchiveAnalyzerTest.java
+lang-python/src/test/java/org/eclipse/steady/python/virtualenv/VirtualenvWrapperTest.java
+lang-python/src/test/java/org/eclipse/steady/python/pip/PyWrapperTest.java
+lang-python/src/test/java/org/eclipse/steady/python/pip/PipWrapperTest.java
+lang-python/src/test/java/org/eclipse/steady/python/pip/PipInstalledPackageTest.java
+lang-python/src/test/java/org/eclipse/steady/python/ProcessWrapperTest.java
+lang-python/src/test/java/org/eclipse/steady/python/PythonFileAnalyzerTest.java
+repo-client/src/test/java/org/eclipse/steady/git/GitTest.java
+patch-analyzer/src/test/java/org/eclipse/steady/patcha/IT01_PatchAnalyzerIT.java
+patch-analyzer/src/test/java/org/eclipse/steady/patcha/FileComparatorTest.java
+patch-lib-analyzer/src/test/java/org/eclipse/steady/patcheval/CiaTest.java
+patch-lib-analyzer/src/test/java/org/eclipse/steady/patcheval/VersionTest.java
+patch-lib-analyzer/src/test/java/org/eclipse/steady/patcheval/package-info.java
+kb-importer/src/test/java/org/eclipse/steady/kb/ZipUtil.java
+kb-importer/src/test/java/org/eclipse/steady/kb/task/TestImportVulnerability_CVE_2017_2617.java
+kb-importer/src/test/java/org/eclipse/steady/kb/task/TestImportVulnerability.java
+kb-importer/src/test/java/org/eclipse/steady/kb/task/MockBackConnector.java
+kb-importer/src/test/java/org/eclipse/steady/kb/task/TestImportAffectedLibraries.java
+kb-importer/src/test/java/org/eclipse/steady/kb/MainTest.java
+kb-importer/src/test/java/org/eclipse/steady/kb/util/MetadataTest.java
+kb-importer/src/test/java/org/eclipse/steady/kb/TestPythonConstructs.java
+kb-importer/src/test/java/org/eclipse/steady/kb/TestConstructs.java
+kb-importer/src/test/java/org/eclipse/steady/kb/command/ImportTest.java
+kb-importer/src/test/java/org/eclipse/steady/kb/command/CommandParserTest.java
+cli-scanner/src/test/java/org/eclipse/steady/cli/FileAnalyzerTest.java
+cli-scanner/src/test/java/org/eclipse/steady/cli/AbstractGoalTest.java
+cli-scanner/src/test/java/org/eclipse/steady/cli/VulasCliTest.java
+plugin-maven/src/test/java/org/eclipse/steady/java/mvn/VulasAgentOptionsTests.java
+plugin-maven/src/test/java/org/eclipse/steady/java/mvn/AbstractVulasMojoTest.java
+plugin-maven/src/test/java/org/eclipse/steady/java/mvn/TestProjectStub.java
+rest-lib-utils/src/test/java/org/eclipse/steady/cia/dependencyfinder/JarDiffCmdTest.java
+rest-lib-utils/src/test/java/org/eclipse/steady/cia/rest/IT03_ClassControllerTest.java
+rest-lib-utils/src/test/java/org/eclipse/steady/cia/rest/IT01_ArtifactControllerTest.java
+rest-lib-utils/src/test/java/org/eclipse/steady/cia/rest/IT04_ConstructControllerTest.java
+rest-lib-utils/src/test/java/org/eclipse/steady/cia/rest/IT02_SpringControllerTest.java
+rest-lib-utils/src/test/java/org/eclipse/steady/cia/model/maven/ArtifactTest.java
+rest-backend/src/test/java/org/eclipse/steady/backend/cve/CveTest.java
+rest-backend/src/test/java/org/eclipse/steady/backend/cve/NvdRestServiceMockup.java
+rest-backend/src/test/java/org/eclipse/steady/backend/cve/CveReader2Test.java
+rest-backend/src/test/java/org/eclipse/steady/backend/rest/ApplicationControllerTest.java
+rest-backend/src/test/java/org/eclipse/steady/backend/rest/LibraryControllerTest.java
+rest-backend/src/test/java/org/eclipse/steady/backend/rest/HubIntegrationControllerTest.java
+rest-backend/src/test/java/org/eclipse/steady/backend/rest/SpaceControllerTest.java
+rest-backend/src/test/java/org/eclipse/steady/backend/rest/BugControllerTest.java
+rest-backend/src/test/java/org/eclipse/steady/backend/rest/IT02_CoverageControllerIT.java
+rest-backend/src/test/java/org/eclipse/steady/backend/rest/TenantControllerTest.java
+rest-backend/src/test/java/org/eclipse/steady/backend/util/ConnectionUtilTest.java
+rest-backend/src/test/java/org/eclipse/steady/backend/util/SmtpClientTest.java
+rest-backend/src/test/java/org/eclipse/steady/backend/util/PyPiVerifierTest.java
+rest-backend/src/test/java/org/eclipse/steady/backend/util/ArtifactMapsTest.java
+rest-backend/src/test/java/org/eclipse/steady/backend/util/package-info.java
+rest-backend/src/test/java/org/eclipse/steady/backend/component/ApplicationExporterTest.java
+plugin-gradle/src/test/java/org/eclipse/steady/java/gradle/AndroidLibsTest.java
+plugin-gradle/src/test/java/org/eclipse/steady/java/gradle/VulasBaseTest.java
+plugin-gradle/src/test/java/org/eclipse/steady/java/gradle/JavaLibTest.java
+plugin-gradle/src/test/java/org/eclipse/steady/java/gradle/GradleTestProject.java
diff --git a/kb-importer/src/test/java/org/eclipse/steady/kb/command/ImportTest.java b/kb-importer/src/test/java/org/eclipse/steady/kb/command/ImportTest.java
index 0ab7d056b..c13b47714 100755
--- a/kb-importer/src/test/java/org/eclipse/steady/kb/command/ImportTest.java
+++ b/kb-importer/src/test/java/org/eclipse/steady/kb/command/ImportTest.java
@@ -17,17 +17,14 @@
* SPDX-FileCopyrightText: Copyright (c) 2018-2020 SAP SE or an SAP affiliate company and Eclipse Steady contributors
*/
package org.eclipse.steady.kb.command;
+
import org.eclipse.steady.kb.task.MockBackConnector;
-import org.eclipse.steady.shared.json.model.AffectedLibrary;
import org.eclipse.steady.kb.model.Vulnerability;
-import org.eclipse.steady.kb.util.Metadata;
-import com.fasterxml.jackson.databind.ObjectMapper;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.assertNull;
import java.util.HashMap;
-import java.util.List;
import org.apache.commons.cli.Options;
import java.io.IOException;
@@ -77,5 +74,4 @@ public void testImportSkipExistingBug()
command.run(args);
assertNull(mockBackendConnector.getUploadJson());
}
-
}
diff --git a/kb-importer/src/test/java/org/eclipse/steady/kb/task/TestImportVulnerability.java b/kb-importer/src/test/java/org/eclipse/steady/kb/task/TestImportVulnerability.java
index 30b7d2c71..eeb403b51 100644
--- a/kb-importer/src/test/java/org/eclipse/steady/kb/task/TestImportVulnerability.java
+++ b/kb-importer/src/test/java/org/eclipse/steady/kb/task/TestImportVulnerability.java
@@ -2,7 +2,6 @@
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
diff --git a/non-compliant-files.txt b/non-compliant-files.txt
new file mode 100644
index 000000000..9de491499
--- /dev/null
+++ b/non-compliant-files.txt
@@ -0,0 +1,2 @@
+kb-importer/src/test/java/org/eclipse/steady/kb/task/TestImportVulnerability.java
+kb-importer/src/test/java/org/eclipse/steady/kb/command/ImportTest.java
diff --git a/pom.xml b/pom.xml
index 7edf8ceba..cd99d756e 100755
--- a/pom.xml
+++ b/pom.xml
@@ -152,7 +152,7 @@
lang-java-reach
lang-java-reach-wala
lang-java-reach-soot
- lang-python
+
repo-client
From 3d83e6c3dacb858d1757e9724790d4fec0ff0847 Mon Sep 17 00:00:00 2001
From: Pedro GALVAO
Date: Tue, 12 Apr 2022 17:30:21 +0200
Subject: [PATCH 09/83] Created Manager and added function to extract tar
(still have some errors)
---
java-files.txt | 842 +++++++++---------
kb-importer/pom.xml | 10 +
.../eclipse/steady/kb/ImporterController.java | 9 +
.../main/java/org/eclipse/steady/kb/Main.java | 5 +-
.../java/org/eclipse/steady/kb/Manager.java | 40 +
.../org/eclipse/steady/kb/command/Import.java | 50 +-
.../org/eclipse/steady/kb/util/Metadata.java | 60 +-
non-compliant-files.txt | 2 -
pom.xml | 5 +
9 files changed, 594 insertions(+), 429 deletions(-)
create mode 100644 kb-importer/src/main/java/org/eclipse/steady/kb/ImporterController.java
create mode 100644 kb-importer/src/main/java/org/eclipse/steady/kb/Manager.java
delete mode 100644 non-compliant-files.txt
diff --git a/java-files.txt b/java-files.txt
index f1657c7d3..62e009aa2 100644
--- a/java-files.txt
+++ b/java-files.txt
@@ -1,597 +1,599 @@
+shared/src/main/java/org/eclipse/steady/shared/enums/ConstructChangeType.java
+shared/src/main/java/org/eclipse/steady/shared/enums/PropertySource.java
+shared/src/main/java/org/eclipse/steady/shared/enums/CoverageStatus.java
+shared/src/main/java/org/eclipse/steady/shared/enums/BugOrigin.java
+shared/src/main/java/org/eclipse/steady/shared/enums/GoalClient.java
+shared/src/main/java/org/eclipse/steady/shared/enums/PathSource.java
+shared/src/main/java/org/eclipse/steady/shared/enums/ExportFormat.java
+shared/src/main/java/org/eclipse/steady/shared/enums/Scope.java
+shared/src/main/java/org/eclipse/steady/shared/enums/package-info.java
+shared/src/main/java/org/eclipse/steady/shared/enums/ExportConfiguration.java
+shared/src/main/java/org/eclipse/steady/shared/enums/ConstructType.java
+shared/src/main/java/org/eclipse/steady/shared/enums/GoalType.java
+shared/src/main/java/org/eclipse/steady/shared/enums/ContentMaturityLevel.java
+shared/src/main/java/org/eclipse/steady/shared/enums/AffectedVersionSource.java
+shared/src/main/java/org/eclipse/steady/shared/enums/DigestAlgorithm.java
+shared/src/main/java/org/eclipse/steady/shared/enums/ProgrammingLanguage.java
+shared/src/main/java/org/eclipse/steady/shared/enums/DependencyOrigin.java
+shared/src/main/java/org/eclipse/steady/shared/enums/VulnDepOrigin.java
shared/src/main/java/org/eclipse/steady/shared/cache/Cache.java
shared/src/main/java/org/eclipse/steady/shared/cache/ObjectFetcher.java
shared/src/main/java/org/eclipse/steady/shared/cache/CacheException.java
-shared/src/main/java/org/eclipse/steady/shared/util/Constants.java
-shared/src/main/java/org/eclipse/steady/shared/util/ProgressTracker.java
+shared/src/main/java/org/eclipse/steady/shared/package-info.java
+shared/src/main/java/org/eclipse/steady/shared/util/DependencyUtil.java
shared/src/main/java/org/eclipse/steady/shared/util/AbstractFileSearch.java
-shared/src/main/java/org/eclipse/steady/shared/util/StringUtil.java
-shared/src/main/java/org/eclipse/steady/shared/util/StringList.java
-shared/src/main/java/org/eclipse/steady/shared/util/VulasConfiguration.java
+shared/src/main/java/org/eclipse/steady/shared/util/DirnamePatternSearch.java
+shared/src/main/java/org/eclipse/steady/shared/util/FileSearch.java
+shared/src/main/java/org/eclipse/steady/shared/util/MemoryMonitor.java
shared/src/main/java/org/eclipse/steady/shared/util/CollectionUtil.java
+shared/src/main/java/org/eclipse/steady/shared/util/Constants.java
+shared/src/main/java/org/eclipse/steady/shared/util/FileUtil.java
+shared/src/main/java/org/eclipse/steady/shared/util/package-info.java
+shared/src/main/java/org/eclipse/steady/shared/util/ThreadUtil.java
+shared/src/main/java/org/eclipse/steady/shared/util/StringUtil.java
+shared/src/main/java/org/eclipse/steady/shared/util/FilenamePatternSearch.java
shared/src/main/java/org/eclipse/steady/shared/util/DigestUtil.java
shared/src/main/java/org/eclipse/steady/shared/util/StopWatch.java
-shared/src/main/java/org/eclipse/steady/shared/util/DependencyUtil.java
-shared/src/main/java/org/eclipse/steady/shared/util/ConstructIdUtil.java
-shared/src/main/java/org/eclipse/steady/shared/util/ThreadUtil.java
-shared/src/main/java/org/eclipse/steady/shared/util/DirnamePatternSearch.java
-shared/src/main/java/org/eclipse/steady/shared/util/MemoryMonitor.java
-shared/src/main/java/org/eclipse/steady/shared/util/DirUtil.java
shared/src/main/java/org/eclipse/steady/shared/util/DirWithFileSearch.java
-shared/src/main/java/org/eclipse/steady/shared/util/FilenamePatternSearch.java
-shared/src/main/java/org/eclipse/steady/shared/util/package-info.java
-shared/src/main/java/org/eclipse/steady/shared/util/FileUtil.java
-shared/src/main/java/org/eclipse/steady/shared/util/FileSearch.java
-shared/src/main/java/org/eclipse/steady/shared/enums/AffectedVersionSource.java
-shared/src/main/java/org/eclipse/steady/shared/enums/GoalType.java
-shared/src/main/java/org/eclipse/steady/shared/enums/BugOrigin.java
-shared/src/main/java/org/eclipse/steady/shared/enums/ExportFormat.java
-shared/src/main/java/org/eclipse/steady/shared/enums/VulnDepOrigin.java
-shared/src/main/java/org/eclipse/steady/shared/enums/DigestAlgorithm.java
-shared/src/main/java/org/eclipse/steady/shared/enums/PropertySource.java
-shared/src/main/java/org/eclipse/steady/shared/enums/ExportConfiguration.java
-shared/src/main/java/org/eclipse/steady/shared/enums/ProgrammingLanguage.java
-shared/src/main/java/org/eclipse/steady/shared/enums/ContentMaturityLevel.java
-shared/src/main/java/org/eclipse/steady/shared/enums/CoverageStatus.java
-shared/src/main/java/org/eclipse/steady/shared/enums/ConstructType.java
-shared/src/main/java/org/eclipse/steady/shared/enums/DependencyOrigin.java
-shared/src/main/java/org/eclipse/steady/shared/enums/package-info.java
-shared/src/main/java/org/eclipse/steady/shared/enums/GoalClient.java
-shared/src/main/java/org/eclipse/steady/shared/enums/Scope.java
-shared/src/main/java/org/eclipse/steady/shared/enums/PathSource.java
-shared/src/main/java/org/eclipse/steady/shared/enums/ConstructChangeType.java
-shared/src/main/java/org/eclipse/steady/shared/json/JsonSyntaxException.java
-shared/src/main/java/org/eclipse/steady/shared/json/JsonReader.java
+shared/src/main/java/org/eclipse/steady/shared/util/DirUtil.java
+shared/src/main/java/org/eclipse/steady/shared/util/ConstructIdUtil.java
+shared/src/main/java/org/eclipse/steady/shared/util/ProgressTracker.java
+shared/src/main/java/org/eclipse/steady/shared/util/VulasConfiguration.java
+shared/src/main/java/org/eclipse/steady/shared/util/StringList.java
shared/src/main/java/org/eclipse/steady/shared/json/JsonBuilder.java
+shared/src/main/java/org/eclipse/steady/shared/json/JsonWriter.java
shared/src/main/java/org/eclipse/steady/shared/json/JacksonUtil.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/AffectedLibrary.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/mavenCentral/MavenSearchResponse.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/mavenCentral/ResponseDoc.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/mavenCentral/MavenVersionsSearch.java
+shared/src/main/java/org/eclipse/steady/shared/json/JsonSyntaxException.java
+shared/src/main/java/org/eclipse/steady/shared/json/JsonReader.java
shared/src/main/java/org/eclipse/steady/shared/json/model/ConstructId.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/ConstructIdFilter.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/Space.java
shared/src/main/java/org/eclipse/steady/shared/json/model/ConstructChange.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/ExemptionUnassessed.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/Library.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/AffectedConstructChange.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/Application.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/Dependency.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/PathNode.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/KeyValue.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/ConstructIdFilter.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/IExemption.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/Trace.java
shared/src/main/java/org/eclipse/steady/shared/json/model/diff/ClassModification.java
shared/src/main/java/org/eclipse/steady/shared/json/model/diff/ClassDiffResult.java
shared/src/main/java/org/eclipse/steady/shared/json/model/diff/JarDiffResult.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/VulnerableDependency.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/Space.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/AffectedConstructChange.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/Application.java
shared/src/main/java/org/eclipse/steady/shared/json/model/ExemptionSet.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/FileChange.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/ExemptionBug.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/Property.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/ExemptionUnassessed.java
shared/src/main/java/org/eclipse/steady/shared/json/model/Bug.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/Tenant.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/LibraryId.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/ConstructChangeInDependency.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/package-info.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/Version.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/FileChange.java
shared/src/main/java/org/eclipse/steady/shared/json/model/Artifact.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/VulnerableDependency.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/Library.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/mavenCentral/ResponseDoc.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/mavenCentral/MavenVersionsSearch.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/mavenCentral/MavenSearchResponse.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/KeyValue.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/Tenant.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/ExemptionBug.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/AffectedLibrary.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/PathNode.java
shared/src/main/java/org/eclipse/steady/shared/json/model/ExemptionScope.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/Version.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/Property.java
shared/src/main/java/org/eclipse/steady/shared/json/model/view/Views.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/IExemption.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/package-info.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/Trace.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/ConstructChangeInDependency.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/metrics/Percentage.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/metrics/package-info.java
shared/src/main/java/org/eclipse/steady/shared/json/model/metrics/Metrics.java
shared/src/main/java/org/eclipse/steady/shared/json/model/metrics/AbstractMetric.java
shared/src/main/java/org/eclipse/steady/shared/json/model/metrics/Counter.java
shared/src/main/java/org/eclipse/steady/shared/json/model/metrics/Ratio.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/metrics/package-info.java
-shared/src/main/java/org/eclipse/steady/shared/json/model/metrics/Percentage.java
-shared/src/main/java/org/eclipse/steady/shared/json/JsonWriter.java
-shared/src/main/java/org/eclipse/steady/shared/package-info.java
-shared/src/main/java/org/eclipse/steady/shared/connectivity/PathBuilder.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/LibraryId.java
+shared/src/main/java/org/eclipse/steady/shared/json/model/Dependency.java
shared/src/main/java/org/eclipse/steady/shared/connectivity/Service.java
-shared/src/main/java/org/eclipse/steady/shared/connectivity/package-info.java
+shared/src/main/java/org/eclipse/steady/shared/connectivity/PathBuilder.java
shared/src/main/java/org/eclipse/steady/shared/connectivity/ServiceConnectionException.java
+shared/src/main/java/org/eclipse/steady/shared/connectivity/package-info.java
+lang/src/main/java/org/eclipse/steady/ConstructId.java
+lang/src/main/java/org/eclipse/steady/ConstructChange.java
lang/src/main/java/org/eclipse/steady/malice/ZipSlipAnalyzer.java
-lang/src/main/java/org/eclipse/steady/malice/MaliciousnessAnalyzer.java
-lang/src/main/java/org/eclipse/steady/malice/MaliciousnessAnalysisResult.java
lang/src/main/java/org/eclipse/steady/malice/MaliciousnessAnalyzerLoop.java
+lang/src/main/java/org/eclipse/steady/malice/MaliciousnessAnalysisResult.java
+lang/src/main/java/org/eclipse/steady/malice/MaliciousnessAnalyzer.java
+lang/src/main/java/org/eclipse/steady/Construct.java
+lang/src/main/java/org/eclipse/steady/backend/HttpMethod.java
+lang/src/main/java/org/eclipse/steady/backend/HttpResponse.java
+lang/src/main/java/org/eclipse/steady/backend/EntityNotFoundInBackendException.java
+lang/src/main/java/org/eclipse/steady/backend/requests/PutLibraryCondition.java
+lang/src/main/java/org/eclipse/steady/backend/requests/RequestRepeater.java
+lang/src/main/java/org/eclipse/steady/backend/requests/AbstractHttpRequest.java
+lang/src/main/java/org/eclipse/steady/backend/requests/ContentCondition.java
+lang/src/main/java/org/eclipse/steady/backend/requests/StatusCondition.java
+lang/src/main/java/org/eclipse/steady/backend/requests/HttpRequestList.java
+lang/src/main/java/org/eclipse/steady/backend/requests/package-info.java
+lang/src/main/java/org/eclipse/steady/backend/requests/ResponseCondition.java
+lang/src/main/java/org/eclipse/steady/backend/requests/HttpRequest.java
+lang/src/main/java/org/eclipse/steady/backend/requests/ConditionalHttpRequest.java
+lang/src/main/java/org/eclipse/steady/backend/requests/BasicHttpRequest.java
+lang/src/main/java/org/eclipse/steady/backend/BackendConnectionException.java
+lang/src/main/java/org/eclipse/steady/backend/BackendConnector.java
+lang/src/main/java/org/eclipse/steady/DirAnalyzer.java
+lang/src/main/java/org/eclipse/steady/FileAnalyzer.java
+lang/src/main/java/org/eclipse/steady/FileAnalyzerFactory.java
+lang/src/main/java/org/eclipse/steady/FileAnalysisException.java
lang/src/main/java/org/eclipse/steady/core/util/SignatureConfiguration.java
-lang/src/main/java/org/eclipse/steady/core/util/CoreConfiguration.java
lang/src/main/java/org/eclipse/steady/core/util/package-info.java
-lang/src/main/java/org/eclipse/steady/ConstructId.java
-lang/src/main/java/org/eclipse/steady/Construct.java
+lang/src/main/java/org/eclipse/steady/core/util/CoreConfiguration.java
+lang/src/main/java/org/eclipse/steady/tasks/ReachTask.java
+lang/src/main/java/org/eclipse/steady/tasks/package-info.java
+lang/src/main/java/org/eclipse/steady/tasks/AbstractTask.java
+lang/src/main/java/org/eclipse/steady/tasks/AbstractBomTask.java
+lang/src/main/java/org/eclipse/steady/tasks/Task.java
+lang/src/main/java/org/eclipse/steady/tasks/BomTask.java
+lang/src/main/java/org/eclipse/steady/sign/Signature.java
+lang/src/main/java/org/eclipse/steady/sign/SignatureComparator.java
+lang/src/main/java/org/eclipse/steady/sign/SignatureAnalysis.java
+lang/src/main/java/org/eclipse/steady/sign/SignatureChange.java
+lang/src/main/java/org/eclipse/steady/sign/SignatureFactory.java
lang/src/main/java/org/eclipse/steady/report/Report.java
-lang/src/main/java/org/eclipse/steady/FileAnalysisException.java
-lang/src/main/java/org/eclipse/steady/goals/SpaceNewGoal.java
-lang/src/main/java/org/eclipse/steady/goals/AbstractAppGoal.java
-lang/src/main/java/org/eclipse/steady/goals/GoalExecutor.java
+lang/src/main/java/org/eclipse/steady/goals/AbstractGoal.java
+lang/src/main/java/org/eclipse/steady/goals/SpaceModGoal.java
lang/src/main/java/org/eclipse/steady/goals/SpaceDelGoal.java
-lang/src/main/java/org/eclipse/steady/goals/TestGoal.java
lang/src/main/java/org/eclipse/steady/goals/ReportException.java
-lang/src/main/java/org/eclipse/steady/goals/GoalExecutionException.java
lang/src/main/java/org/eclipse/steady/goals/SpaceCleanGoal.java
+lang/src/main/java/org/eclipse/steady/goals/CleanGoal.java
+lang/src/main/java/org/eclipse/steady/goals/GoalExecutor.java
lang/src/main/java/org/eclipse/steady/goals/BomGoal.java
-lang/src/main/java/org/eclipse/steady/goals/AbstractGoal.java
+lang/src/main/java/org/eclipse/steady/goals/AbstractAppGoal.java
+lang/src/main/java/org/eclipse/steady/goals/TestGoal.java
+lang/src/main/java/org/eclipse/steady/goals/package-info.java
+lang/src/main/java/org/eclipse/steady/goals/SequenceGoal.java
+lang/src/main/java/org/eclipse/steady/goals/SpaceNewGoal.java
+lang/src/main/java/org/eclipse/steady/goals/GoalExecutionException.java
lang/src/main/java/org/eclipse/steady/goals/ExecutionObserver.java
lang/src/main/java/org/eclipse/steady/goals/GoalConfigurationException.java
-lang/src/main/java/org/eclipse/steady/goals/CheckverGoal.java
-lang/src/main/java/org/eclipse/steady/goals/AbstractSpaceGoal.java
-lang/src/main/java/org/eclipse/steady/goals/ReportGoal.java
lang/src/main/java/org/eclipse/steady/goals/GoalFactory.java
lang/src/main/java/org/eclipse/steady/goals/UploadGoal.java
-lang/src/main/java/org/eclipse/steady/goals/SequenceGoal.java
lang/src/main/java/org/eclipse/steady/goals/GoalContext.java
-lang/src/main/java/org/eclipse/steady/goals/package-info.java
-lang/src/main/java/org/eclipse/steady/goals/CleanGoal.java
-lang/src/main/java/org/eclipse/steady/goals/SpaceModGoal.java
-lang/src/main/java/org/eclipse/steady/ConstructChange.java
-lang/src/main/java/org/eclipse/steady/DirAnalyzer.java
-lang/src/main/java/org/eclipse/steady/tasks/AbstractTask.java
-lang/src/main/java/org/eclipse/steady/tasks/AbstractBomTask.java
-lang/src/main/java/org/eclipse/steady/tasks/ReachTask.java
-lang/src/main/java/org/eclipse/steady/tasks/Task.java
-lang/src/main/java/org/eclipse/steady/tasks/package-info.java
-lang/src/main/java/org/eclipse/steady/tasks/BomTask.java
-lang/src/main/java/org/eclipse/steady/FileAnalyzer.java
-lang/src/main/java/org/eclipse/steady/sign/SignatureAnalysis.java
-lang/src/main/java/org/eclipse/steady/sign/SignatureFactory.java
-lang/src/main/java/org/eclipse/steady/sign/Signature.java
-lang/src/main/java/org/eclipse/steady/sign/SignatureChange.java
-lang/src/main/java/org/eclipse/steady/sign/SignatureComparator.java
-lang/src/main/java/org/eclipse/steady/backend/BackendConnector.java
-lang/src/main/java/org/eclipse/steady/backend/requests/StatusCondition.java
-lang/src/main/java/org/eclipse/steady/backend/requests/HttpRequest.java
-lang/src/main/java/org/eclipse/steady/backend/requests/HttpRequestList.java
-lang/src/main/java/org/eclipse/steady/backend/requests/PutLibraryCondition.java
-lang/src/main/java/org/eclipse/steady/backend/requests/RequestRepeater.java
-lang/src/main/java/org/eclipse/steady/backend/requests/ConditionalHttpRequest.java
-lang/src/main/java/org/eclipse/steady/backend/requests/ContentCondition.java
-lang/src/main/java/org/eclipse/steady/backend/requests/BasicHttpRequest.java
-lang/src/main/java/org/eclipse/steady/backend/requests/AbstractHttpRequest.java
-lang/src/main/java/org/eclipse/steady/backend/requests/ResponseCondition.java
-lang/src/main/java/org/eclipse/steady/backend/requests/package-info.java
-lang/src/main/java/org/eclipse/steady/backend/HttpResponse.java
-lang/src/main/java/org/eclipse/steady/backend/BackendConnectionException.java
-lang/src/main/java/org/eclipse/steady/backend/EntityNotFoundInBackendException.java
-lang/src/main/java/org/eclipse/steady/backend/HttpMethod.java
-lang/src/main/java/org/eclipse/steady/FileAnalyzerFactory.java
-lang-java/src/main/java/org/eclipse/steady/java/monitor/slice/SliceInstrumentor.java
-lang-java/src/main/java/org/eclipse/steady/java/monitor/IInstrumentor.java
-lang-java/src/main/java/org/eclipse/steady/java/monitor/InstrumentationControl.java
-lang-java/src/main/java/org/eclipse/steady/java/monitor/Loader.java
-lang-java/src/main/java/org/eclipse/steady/java/monitor/UploadScheduler.java
-lang-java/src/main/java/org/eclipse/steady/java/monitor/ClassVisitor.java
-lang-java/src/main/java/org/eclipse/steady/java/monitor/InstrumentorFactory.java
-lang-java/src/main/java/org/eclipse/steady/java/monitor/PrintlnInstrumentor.java
-lang-java/src/main/java/org/eclipse/steady/java/monitor/LoaderFilter.java
-lang-java/src/main/java/org/eclipse/steady/java/monitor/ClassNameLoaderFilter.java
-lang-java/src/main/java/org/eclipse/steady/java/monitor/touch/ConstructIdUtil.java
-lang-java/src/main/java/org/eclipse/steady/java/monitor/touch/TouchPointInstrumentor.java
-lang-java/src/main/java/org/eclipse/steady/java/monitor/touch/TouchPointCollector.java
-lang-java/src/main/java/org/eclipse/steady/java/monitor/ClassPoolUpdater.java
-lang-java/src/main/java/org/eclipse/steady/java/monitor/ExecutionMonitor.java
-lang-java/src/main/java/org/eclipse/steady/java/monitor/trace/AbstractTraceInstrumentor.java
-lang-java/src/main/java/org/eclipse/steady/java/monitor/trace/PathNode.java
-lang-java/src/main/java/org/eclipse/steady/java/monitor/trace/StackTraceInstrumentor.java
-lang-java/src/main/java/org/eclipse/steady/java/monitor/trace/TraceCollector.java
-lang-java/src/main/java/org/eclipse/steady/java/monitor/trace/StackTraceUtil.java
-lang-java/src/main/java/org/eclipse/steady/java/monitor/trace/ConstructUsage.java
-lang-java/src/main/java/org/eclipse/steady/java/monitor/trace/SingleStackTraceInstrumentor.java
-lang-java/src/main/java/org/eclipse/steady/java/monitor/trace/SingleTraceInstrumentor.java
-lang-java/src/main/java/org/eclipse/steady/java/monitor/AbstractInstrumentor.java
-lang-java/src/main/java/org/eclipse/steady/java/monitor/DynamicTransformer.java
-lang-java/src/main/java/org/eclipse/steady/java/monitor/LoaderHierarchy.java
-lang-java/src/main/java/org/eclipse/steady/java/JavaId.java
-lang-java/src/main/java/org/eclipse/steady/java/JavaInterfaceId.java
-lang-java/src/main/java/org/eclipse/steady/java/goals/InstrGoal.java
-lang-java/src/main/java/org/eclipse/steady/java/goals/CheckBytecodeGoal.java
+lang/src/main/java/org/eclipse/steady/goals/ReportGoal.java
+lang/src/main/java/org/eclipse/steady/goals/CheckverGoal.java
+lang/src/main/java/org/eclipse/steady/goals/AbstractSpaceGoal.java
+lang-java/src/main/java/org/eclipse/steady/java/ClassFileAnalyzer.java
+lang-java/src/main/java/org/eclipse/steady/java/AarAnalyzer.java
lang-java/src/main/java/org/eclipse/steady/java/JavaClassInit.java
-lang-java/src/main/java/org/eclipse/steady/java/WarAnalyzer.java
-lang-java/src/main/java/org/eclipse/steady/java/JavaFileAnalyzer2.java
lang-java/src/main/java/org/eclipse/steady/java/JavaClassId.java
lang-java/src/main/java/org/eclipse/steady/java/PomParser.java
-lang-java/src/main/java/org/eclipse/steady/java/JavaPackageId.java
-lang-java/src/main/java/org/eclipse/steady/java/bytecode/BytecodeComparator.java
-lang-java/src/main/java/org/eclipse/steady/java/bytecode/ConstructBytecodeASTManager.java
-lang-java/src/main/java/org/eclipse/steady/java/SpringBootAnalyzer.java
+lang-java/src/main/java/org/eclipse/steady/java/JavaConstructorId.java
lang-java/src/main/java/org/eclipse/steady/java/JavaMethodId.java
-lang-java/src/main/java/org/eclipse/steady/java/AarAnalyzer.java
+lang-java/src/main/java/org/eclipse/steady/java/JavaId.java
+lang-java/src/main/java/org/eclipse/steady/java/JavaEnumId.java
+lang-java/src/main/java/org/eclipse/steady/java/WarAnalyzer.java
+lang-java/src/main/java/org/eclipse/steady/java/JarWriter.java
+lang-java/src/main/java/org/eclipse/steady/java/JarAnalysisException.java
+lang-java/src/main/java/org/eclipse/steady/java/SpringBootAnalyzer.java
lang-java/src/main/java/org/eclipse/steady/java/JarEntryWriter.java
-lang-java/src/main/java/org/eclipse/steady/java/tasks/JavaBomTask.java
+lang-java/src/main/java/org/eclipse/steady/java/JavaPackageId.java
lang-java/src/main/java/org/eclipse/steady/java/tasks/package-info.java
-lang-java/src/main/java/org/eclipse/steady/java/decompiler/ProcyonDecompiler.java
-lang-java/src/main/java/org/eclipse/steady/java/decompiler/IDecompiler.java
-lang-java/src/main/java/org/eclipse/steady/java/ClassFileAnalyzer.java
-lang-java/src/main/java/org/eclipse/steady/java/JarAnalysisException.java
-lang-java/src/main/java/org/eclipse/steady/java/ArchiveAnalysisManager.java
-lang-java/src/main/java/org/eclipse/steady/java/JarAnalyzer.java
-lang-java/src/main/java/org/eclipse/steady/java/JavaConstructorId.java
-lang-java/src/main/java/org/eclipse/steady/java/sign/UniqueNameNormalizer.java
-lang-java/src/main/java/org/eclipse/steady/java/sign/gson/ASTSignatureDeserializer.java
-lang-java/src/main/java/org/eclipse/steady/java/sign/gson/ASTConstructBodySignatureSerializer.java
+lang-java/src/main/java/org/eclipse/steady/java/tasks/JavaBomTask.java
+lang-java/src/main/java/org/eclipse/steady/java/sign/ASTSignature.java
lang-java/src/main/java/org/eclipse/steady/java/sign/gson/ASTConstructBodySignatureDeserializer.java
lang-java/src/main/java/org/eclipse/steady/java/sign/gson/GsonHelper.java
+lang-java/src/main/java/org/eclipse/steady/java/sign/gson/ASTSignatureDeserializer.java
lang-java/src/main/java/org/eclipse/steady/java/sign/gson/ASTSignatureChangeDeserializer.java
lang-java/src/main/java/org/eclipse/steady/java/sign/gson/ASTSignatureChangeSerializer.java
lang-java/src/main/java/org/eclipse/steady/java/sign/gson/package-info.java
+lang-java/src/main/java/org/eclipse/steady/java/sign/gson/ASTConstructBodySignatureSerializer.java
+lang-java/src/main/java/org/eclipse/steady/java/sign/ASTSignatureComparator.java
+lang-java/src/main/java/org/eclipse/steady/java/sign/CompilationUtils.java
+lang-java/src/main/java/org/eclipse/steady/java/sign/ASTSignatureChange.java
+lang-java/src/main/java/org/eclipse/steady/java/sign/package-info.java
lang-java/src/main/java/org/eclipse/steady/java/sign/JavaSignatureFactory.java
+lang-java/src/main/java/org/eclipse/steady/java/sign/UniqueNameNormalizer.java
lang-java/src/main/java/org/eclipse/steady/java/sign/ASTConstructBodySignature.java
-lang-java/src/main/java/org/eclipse/steady/java/sign/ASTSignatureChange.java
-lang-java/src/main/java/org/eclipse/steady/java/sign/CompilationUtils.java
-lang-java/src/main/java/org/eclipse/steady/java/sign/DistillerUtil.java
-lang-java/src/main/java/org/eclipse/steady/java/sign/ASTSignatureComparator.java
lang-java/src/main/java/org/eclipse/steady/java/sign/ASTUtil.java
-lang-java/src/main/java/org/eclipse/steady/java/sign/package-info.java
-lang-java/src/main/java/org/eclipse/steady/java/sign/ASTSignature.java
-lang-java/src/main/java/org/eclipse/steady/java/JavaEnumId.java
-lang-java/src/main/java/org/eclipse/steady/java/JarWriter.java
-lang-java-reach/src/main/java/org/eclipse/steady/cg/A2CGoal.java
-lang-java-reach/src/main/java/org/eclipse/steady/cg/MethodNameFilter.java
+lang-java/src/main/java/org/eclipse/steady/java/sign/DistillerUtil.java
+lang-java/src/main/java/org/eclipse/steady/java/JarAnalyzer.java
+lang-java/src/main/java/org/eclipse/steady/java/JavaInterfaceId.java
+lang-java/src/main/java/org/eclipse/steady/java/goals/InstrGoal.java
+lang-java/src/main/java/org/eclipse/steady/java/goals/CheckBytecodeGoal.java
+lang-java/src/main/java/org/eclipse/steady/java/bytecode/BytecodeComparator.java
+lang-java/src/main/java/org/eclipse/steady/java/bytecode/ConstructBytecodeASTManager.java
+lang-java/src/main/java/org/eclipse/steady/java/JavaFileAnalyzer2.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/IInstrumentor.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/slice/SliceInstrumentor.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/touch/TouchPointCollector.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/touch/TouchPointInstrumentor.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/touch/ConstructIdUtil.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/ExecutionMonitor.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/InstrumentationControl.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/InstrumentorFactory.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/ClassPoolUpdater.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/UploadScheduler.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/trace/ConstructUsage.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/trace/StackTraceUtil.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/trace/TraceCollector.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/trace/StackTraceInstrumentor.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/trace/AbstractTraceInstrumentor.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/trace/SingleStackTraceInstrumentor.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/trace/PathNode.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/trace/SingleTraceInstrumentor.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/ClassNameLoaderFilter.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/LoaderHierarchy.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/LoaderFilter.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/Loader.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/AbstractInstrumentor.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/ClassVisitor.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/DynamicTransformer.java
+lang-java/src/main/java/org/eclipse/steady/java/monitor/PrintlnInstrumentor.java
+lang-java/src/main/java/org/eclipse/steady/java/decompiler/IDecompiler.java
+lang-java/src/main/java/org/eclipse/steady/java/decompiler/ProcyonDecompiler.java
+lang-java/src/main/java/org/eclipse/steady/java/ArchiveAnalysisManager.java
+lang-java-reach/src/main/java/org/eclipse/steady/cg/ReachabilityAnalyzer.java
+lang-java-reach/src/main/java/org/eclipse/steady/cg/CallgraphReachableSearch.java
+lang-java-reach/src/main/java/org/eclipse/steady/cg/AbstractReachGoal.java
+lang-java-reach/src/main/java/org/eclipse/steady/cg/NodeMetaInformation.java
+lang-java-reach/src/main/java/org/eclipse/steady/cg/spi/CallgraphConstructorFactory.java
+lang-java-reach/src/main/java/org/eclipse/steady/cg/spi/ICallgraphConstructor.java
lang-java-reach/src/main/java/org/eclipse/steady/cg/T2CGoal.java
-lang-java-reach/src/main/java/org/eclipse/steady/cg/ReachabilityConfiguration.java
-lang-java-reach/src/main/java/org/eclipse/steady/cg/PathSimilarity.java
lang-java-reach/src/main/java/org/eclipse/steady/cg/PrunedGraphGetPaths.java
lang-java-reach/src/main/java/org/eclipse/steady/cg/Callgraph.java
-lang-java-reach/src/main/java/org/eclipse/steady/cg/CallgraphPathSearch.java
+lang-java-reach/src/main/java/org/eclipse/steady/cg/MethodNameFilter.java
lang-java-reach/src/main/java/org/eclipse/steady/cg/DepthFirstGetPaths.java
-lang-java-reach/src/main/java/org/eclipse/steady/cg/CallgraphReachableSearch.java
-lang-java-reach/src/main/java/org/eclipse/steady/cg/ReachabilityAnalyzer.java
-lang-java-reach/src/main/java/org/eclipse/steady/cg/spi/CallgraphConstructorFactory.java
-lang-java-reach/src/main/java/org/eclipse/steady/cg/spi/ICallgraphConstructor.java
-lang-java-reach/src/main/java/org/eclipse/steady/cg/NodeMetaInformation.java
+lang-java-reach/src/main/java/org/eclipse/steady/cg/A2CGoal.java
+lang-java-reach/src/main/java/org/eclipse/steady/cg/CallgraphPathSearch.java
+lang-java-reach/src/main/java/org/eclipse/steady/cg/ReachabilityConfiguration.java
lang-java-reach/src/main/java/org/eclipse/steady/cg/AbstractGetPaths.java
lang-java-reach/src/main/java/org/eclipse/steady/cg/CallgraphConstructException.java
-lang-java-reach/src/main/java/org/eclipse/steady/cg/AbstractReachGoal.java
+lang-java-reach/src/main/java/org/eclipse/steady/cg/PathSimilarity.java
lang-java-reach-wala/src/main/java/org/eclipse/steady/cg/wala/WalaCallgraphConstructor.java
-lang-java-reach-soot/src/main/java/org/eclipse/steady/cg/soot/CustomEntryPointCreator.java
lang-java-reach-soot/src/main/java/org/eclipse/steady/cg/soot/SootConfiguration.java
+lang-java-reach-soot/src/main/java/org/eclipse/steady/cg/soot/CustomEntryPointCreator.java
lang-java-reach-soot/src/main/java/org/eclipse/steady/cg/soot/SootCallgraphConstructor.java
-lang-python/src/main/java/org/eclipse/steady/python/PythonArchiveAnalyzer.java
lang-python/src/main/java/org/eclipse/steady/python/virtualenv/VirtualenvWrapper.java
lang-python/src/main/java/org/eclipse/steady/python/virtualenv/package-info.java
+lang-python/src/main/java/org/eclipse/steady/python/Python3FileAnalyzer.java
lang-python/src/main/java/org/eclipse/steady/python/PythonId.java
+lang-python/src/main/java/org/eclipse/steady/python/PythonFileAnalyzer.java
+lang-python/src/main/java/org/eclipse/steady/python/ProcessWrapperException.java
lang-python/src/main/java/org/eclipse/steady/python/utils/PythonConfiguration.java
-lang-python/src/main/java/org/eclipse/steady/python/pip/PipWrapper.java
lang-python/src/main/java/org/eclipse/steady/python/pip/PyWrapper.java
-lang-python/src/main/java/org/eclipse/steady/python/pip/PipInstalledPackage.java
lang-python/src/main/java/org/eclipse/steady/python/pip/package-info.java
-lang-python/src/main/java/org/eclipse/steady/python/tasks/PythonBomTask.java
+lang-python/src/main/java/org/eclipse/steady/python/pip/PipInstalledPackage.java
+lang-python/src/main/java/org/eclipse/steady/python/pip/PipWrapper.java
+lang-python/src/main/java/org/eclipse/steady/python/PythonArchiveAnalyzer.java
lang-python/src/main/java/org/eclipse/steady/python/tasks/package-info.java
-lang-python/src/main/java/org/eclipse/steady/python/Python3FileAnalyzer.java
-lang-python/src/main/java/org/eclipse/steady/python/ProcessWrapper.java
-lang-python/src/main/java/org/eclipse/steady/python/PythonFileAnalyzer.java
-lang-python/src/main/java/org/eclipse/steady/python/ProcessWrapperException.java
-lang-python/src/main/java/org/eclipse/steady/python/Python335FileAnalyzer.java
+lang-python/src/main/java/org/eclipse/steady/python/tasks/PythonBomTask.java
+lang-python/src/main/java/org/eclipse/steady/python/sign/PythonConstructDigestDeserializer.java
lang-python/src/main/java/org/eclipse/steady/python/sign/PythonSignatureFactory.java
-lang-python/src/main/java/org/eclipse/steady/python/sign/PythonConstructDigestSerializer.java
lang-python/src/main/java/org/eclipse/steady/python/sign/PythonConstructDigest.java
-lang-python/src/main/java/org/eclipse/steady/python/sign/PythonConstructDigestDeserializer.java
-repo-client/src/main/java/org/eclipse/steady/svn/SvnClient.java
-repo-client/src/main/java/org/eclipse/steady/git/MyProxySelector.java
+lang-python/src/main/java/org/eclipse/steady/python/sign/PythonConstructDigestSerializer.java
+lang-python/src/main/java/org/eclipse/steady/python/Python335FileAnalyzer.java
+lang-python/src/main/java/org/eclipse/steady/python/ProcessWrapper.java
repo-client/src/main/java/org/eclipse/steady/git/GitClient.java
+repo-client/src/main/java/org/eclipse/steady/git/MyProxySelector.java
+repo-client/src/main/java/org/eclipse/steady/package-info.java
+repo-client/src/main/java/org/eclipse/steady/vcs/NoRepoClientException.java
repo-client/src/main/java/org/eclipse/steady/vcs/RepoMismatchException.java
-repo-client/src/main/java/org/eclipse/steady/vcs/FileChange.java
repo-client/src/main/java/org/eclipse/steady/vcs/IVCSClient.java
-repo-client/src/main/java/org/eclipse/steady/vcs/NoRepoClientException.java
-repo-client/src/main/java/org/eclipse/steady/package-info.java
-patch-analyzer/src/main/java/org/eclipse/steady/patcha/VulasProxySelector.java
+repo-client/src/main/java/org/eclipse/steady/vcs/FileChange.java
+repo-client/src/main/java/org/eclipse/steady/svn/SvnClient.java
patch-analyzer/src/main/java/org/eclipse/steady/patcha/PatchAnalyzer.java
-patch-analyzer/src/main/java/org/eclipse/steady/patcha/FileComparator.java
patch-analyzer/src/main/java/org/eclipse/steady/patcha/PatchaConfiguration.java
+patch-analyzer/src/main/java/org/eclipse/steady/patcha/FileComparator.java
+patch-analyzer/src/main/java/org/eclipse/steady/patcha/VulasProxySelector.java
+patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/ByteCodeComparator.java
+patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/Main.java
+patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/BugLibAnalyzer.java
+patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/BytecodeAnalyzer.java
+patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/utils/PEConfiguration.java
+patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/utils/CSVHelper2.java
patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/LibraryAnalyzerThread2.java
-patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/PE_Run.java
-patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/representation/ConstructPathAssessment2.java
+patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/representation/ConstructPathLibResult2.java
patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/representation/ArtifactLibrary.java
-patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/representation/LidResult2.java
patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/representation/Intersection2.java
-patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/representation/ReleaseTree.java
-patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/representation/ConstructPathLibResult2.java
-patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/representation/OrderedCCperConstructPath2.java
patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/representation/ArtifactResult2.java
+patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/representation/ConstructPathAssessment2.java
patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/representation/OverallConstructChange.java
-patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/ByteCodeComparator.java
-patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/utils/CSVHelper2.java
-patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/utils/PEConfiguration.java
+patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/representation/OrderedCCperConstructPath2.java
+patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/representation/ReleaseTree.java
+patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/representation/LidResult2.java
+patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/PE_Run.java
patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/BugLibManager.java
-patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/BugLibAnalyzer.java
-patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/Main.java
-patch-lib-analyzer/src/main/java/org/eclipse/steady/patcheval/BytecodeAnalyzer.java
+kb-importer/src/main/java/org/eclipse/steady/kb/Main.java
+kb-importer/src/main/java/org/eclipse/steady/kb/command/Help.java
+kb-importer/src/main/java/org/eclipse/steady/kb/command/CommandParser.java
+kb-importer/src/main/java/org/eclipse/steady/kb/command/Command.java
+kb-importer/src/main/java/org/eclipse/steady/kb/command/Version.java
+kb-importer/src/main/java/org/eclipse/steady/kb/command/CommandExecutor.java
+kb-importer/src/main/java/org/eclipse/steady/kb/command/Import.java
+kb-importer/src/main/java/org/eclipse/steady/kb/util/Metadata.java
+kb-importer/src/main/java/org/eclipse/steady/kb/util/FileComparator.java
+kb-importer/src/main/java/org/eclipse/steady/kb/util/ConstructSet.java
+kb-importer/src/main/java/org/eclipse/steady/kb/Manager.java
kb-importer/src/main/java/org/eclipse/steady/kb/task/ImportAffectedLibraries.java
kb-importer/src/main/java/org/eclipse/steady/kb/task/ImportVulnerability.java
-kb-importer/src/main/java/org/eclipse/steady/kb/task/Task.java
kb-importer/src/main/java/org/eclipse/steady/kb/task/TaskProvider.java
-kb-importer/src/main/java/org/eclipse/steady/kb/util/ConstructSet.java
-kb-importer/src/main/java/org/eclipse/steady/kb/util/Metadata.java
-kb-importer/src/main/java/org/eclipse/steady/kb/util/FileComparator.java
-kb-importer/src/main/java/org/eclipse/steady/kb/exception/ValidationException.java
+kb-importer/src/main/java/org/eclipse/steady/kb/task/Task.java
kb-importer/src/main/java/org/eclipse/steady/kb/exception/CommandLineParserException.java
-kb-importer/src/main/java/org/eclipse/steady/kb/command/CommandParser.java
-kb-importer/src/main/java/org/eclipse/steady/kb/command/CommandExecutor.java
-kb-importer/src/main/java/org/eclipse/steady/kb/command/Help.java
-kb-importer/src/main/java/org/eclipse/steady/kb/command/Import.java
-kb-importer/src/main/java/org/eclipse/steady/kb/command/Version.java
-kb-importer/src/main/java/org/eclipse/steady/kb/command/Command.java
-kb-importer/src/main/java/org/eclipse/steady/kb/Main.java
-kb-importer/src/main/java/org/eclipse/steady/kb/model/Note.java
-kb-importer/src/main/java/org/eclipse/steady/kb/model/Vulnerability.java
+kb-importer/src/main/java/org/eclipse/steady/kb/exception/ValidationException.java
kb-importer/src/main/java/org/eclipse/steady/kb/model/Commit.java
kb-importer/src/main/java/org/eclipse/steady/kb/model/Artifact.java
-cli-scanner/src/main/java/org/eclipse/steady/cli/VulasCli.java
+kb-importer/src/main/java/org/eclipse/steady/kb/model/Vulnerability.java
+kb-importer/src/main/java/org/eclipse/steady/kb/model/Note.java
+kb-importer/src/main/java/org/eclipse/steady/kb/ImporterController.java
cli-scanner/src/main/java/org/eclipse/steady/cli/package-info.java
-plugin-maven/src/main/java/org/eclipse/steady/java/mvn/MvnPluginA2C.java
+cli-scanner/src/main/java/org/eclipse/steady/cli/VulasCli.java
plugin-maven/src/main/java/org/eclipse/steady/java/mvn/MvnPluginClean.java
+plugin-maven/src/main/java/org/eclipse/steady/java/mvn/VulasAgentMojo.java
+plugin-maven/src/main/java/org/eclipse/steady/java/mvn/MvnPluginT2C.java
+plugin-maven/src/main/java/org/eclipse/steady/java/mvn/MvnPluginUpload.java
plugin-maven/src/main/java/org/eclipse/steady/java/mvn/AbstractVulasMojo.java
-plugin-maven/src/main/java/org/eclipse/steady/java/mvn/AbstractVulasSpaceMojo.java
plugin-maven/src/main/java/org/eclipse/steady/java/mvn/MvnPluginSpaceClean.java
-plugin-maven/src/main/java/org/eclipse/steady/java/mvn/MvnPluginCheckBytecode.java
+plugin-maven/src/main/java/org/eclipse/steady/java/mvn/MvnPluginA2C.java
plugin-maven/src/main/java/org/eclipse/steady/java/mvn/MvnPluginBom.java
-plugin-maven/src/main/java/org/eclipse/steady/java/mvn/MvnPluginUpload.java
+plugin-maven/src/main/java/org/eclipse/steady/java/mvn/MvnPluginCheckBytecode.java
plugin-maven/src/main/java/org/eclipse/steady/java/mvn/MvnPluginInstr.java
-plugin-maven/src/main/java/org/eclipse/steady/java/mvn/VulasAgentMojo.java
plugin-maven/src/main/java/org/eclipse/steady/java/mvn/MvnPluginReport.java
-plugin-maven/src/main/java/org/eclipse/steady/java/mvn/MvnPluginT2C.java
-rest-lib-utils/src/main/java/org/eclipse/steady/cia/dependencyfinder/ClassDiffVisitor.java
-rest-lib-utils/src/main/java/org/eclipse/steady/cia/dependencyfinder/JarDiffCmd.java
-rest-lib-utils/src/main/java/org/eclipse/steady/cia/dependencyfinder/JarDiffVisitor.java
+plugin-maven/src/main/java/org/eclipse/steady/java/mvn/AbstractVulasSpaceMojo.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/rest/MainController.java
rest-lib-utils/src/main/java/org/eclipse/steady/cia/rest/ConstructController.java
rest-lib-utils/src/main/java/org/eclipse/steady/cia/rest/ClassController.java
-rest-lib-utils/src/main/java/org/eclipse/steady/cia/rest/ArtifactController.java
rest-lib-utils/src/main/java/org/eclipse/steady/cia/rest/ConfigurationController.java
-rest-lib-utils/src/main/java/org/eclipse/steady/cia/rest/MainController.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/rest/ArtifactController.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/package-info.java
rest-lib-utils/src/main/java/org/eclipse/steady/cia/util/RepositoryWrapper.java
-rest-lib-utils/src/main/java/org/eclipse/steady/cia/util/ClassDownloader.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/util/MavenCentralWrapper.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/util/CacheFilter.java
rest-lib-utils/src/main/java/org/eclipse/steady/cia/util/RepositoryDispatcher.java
-rest-lib-utils/src/main/java/org/eclipse/steady/cia/util/HeaderEcho.java
-rest-lib-utils/src/main/java/org/eclipse/steady/cia/util/FileAnalyzerFetcher.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/util/PypiWrapper.java
rest-lib-utils/src/main/java/org/eclipse/steady/cia/util/RepoException.java
-rest-lib-utils/src/main/java/org/eclipse/steady/cia/util/ArtifactDownloader.java
-rest-lib-utils/src/main/java/org/eclipse/steady/cia/util/MavenCentralWrapper.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/util/ClassDownloader.java
rest-lib-utils/src/main/java/org/eclipse/steady/cia/util/NexusWrapper.java
-rest-lib-utils/src/main/java/org/eclipse/steady/cia/util/PypiWrapper.java
-rest-lib-utils/src/main/java/org/eclipse/steady/cia/util/CacheFilter.java
-rest-lib-utils/src/main/java/org/eclipse/steady/cia/package-info.java
-rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/nexus/NexusLibId.java
-rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/nexus/NexusArtifactInfoResourceResponse.java
-rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/nexus/NexusData.java
-rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/nexus/NexusSearch.java
-rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/nexus/NexusArtifact.java
-rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/nexus/NexusResponse.java
-rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/nexus/NexusArtifactResolution.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/util/FileAnalyzerFetcher.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/util/HeaderEcho.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/util/ArtifactDownloader.java
rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/nexus/NexusDescribeInfo.java
-rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/nexus/NexusNGData.java
-rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/nexus/NexusResolvedArtifact.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/nexus/NexusResponse.java
rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/nexus/NexusSearchNGResponse.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/nexus/NexusResolvedArtifact.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/nexus/NexusArtifactInfoResourceResponse.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/nexus/NexusNGData.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/nexus/NexusArtifactResolution.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/nexus/NexusArtifact.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/nexus/NexusLibId.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/nexus/NexusSearch.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/nexus/NexusData.java
rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/pypi/PypiRelease.java
-rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/pypi/PypiResponse.java
rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/pypi/PypiInfo.java
-rest-backend/src/main/java/org/eclipse/steady/backend/cve/CveReader2.java
-rest-backend/src/main/java/org/eclipse/steady/backend/cve/Cve.java
-rest-backend/src/main/java/org/eclipse/steady/backend/rest/TenantController.java
-rest-backend/src/main/java/org/eclipse/steady/backend/rest/LibraryIdController.java
-rest-backend/src/main/java/org/eclipse/steady/backend/rest/ApplicationController.java
-rest-backend/src/main/java/org/eclipse/steady/backend/rest/HubIntegrationController.java
-rest-backend/src/main/java/org/eclipse/steady/backend/rest/CoverageController.java
-rest-backend/src/main/java/org/eclipse/steady/backend/rest/BugController.java
-rest-backend/src/main/java/org/eclipse/steady/backend/rest/LibraryController.java
-rest-backend/src/main/java/org/eclipse/steady/backend/rest/SpaceController.java
-rest-backend/src/main/java/org/eclipse/steady/backend/rest/ConfigurationController.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/model/pypi/PypiResponse.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/dependencyfinder/JarDiffCmd.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/dependencyfinder/JarDiffVisitor.java
+rest-lib-utils/src/main/java/org/eclipse/steady/cia/dependencyfinder/ClassDiffVisitor.java
rest-backend/src/main/java/org/eclipse/steady/backend/rest/MainController.java
+rest-backend/src/main/java/org/eclipse/steady/backend/rest/SpaceController.java
rest-backend/src/main/java/org/eclipse/steady/backend/rest/CveController.java
-rest-backend/src/main/java/org/eclipse/steady/backend/util/SmtpClient.java
-rest-backend/src/main/java/org/eclipse/steady/backend/util/PyPiVerifier.java
-rest-backend/src/main/java/org/eclipse/steady/backend/util/MavenCentralVerifier.java
-rest-backend/src/main/java/org/eclipse/steady/backend/util/ConnectionUtil.java
-rest-backend/src/main/java/org/eclipse/steady/backend/util/VerificationException.java
-rest-backend/src/main/java/org/eclipse/steady/backend/util/ArtifactMaps.java
-rest-backend/src/main/java/org/eclipse/steady/backend/util/DependencyUtil.java
-rest-backend/src/main/java/org/eclipse/steady/backend/util/ServiceWrapper.java
-rest-backend/src/main/java/org/eclipse/steady/backend/util/TokenUtil.java
-rest-backend/src/main/java/org/eclipse/steady/backend/util/DigestVerifierEnumerator.java
-rest-backend/src/main/java/org/eclipse/steady/backend/util/CacheFilter.java
-rest-backend/src/main/java/org/eclipse/steady/backend/util/Message.java
-rest-backend/src/main/java/org/eclipse/steady/backend/util/ResultSetFilter.java
-rest-backend/src/main/java/org/eclipse/steady/backend/util/ReferenceUpdater.java
-rest-backend/src/main/java/org/eclipse/steady/backend/util/DigestVerifier.java
-rest-backend/src/main/java/org/eclipse/steady/backend/component/ApplicationExporter.java
-rest-backend/src/main/java/org/eclipse/steady/backend/component/StatisticsContributor.java
-rest-backend/src/main/java/org/eclipse/steady/backend/component/ApplicationExporterThread.java
-rest-backend/src/main/java/org/eclipse/steady/backend/package-info.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/TenantRepositoryCustom.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/BugRepositoryCustom.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/SpaceRepository.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/DependencyRepositoryCustom.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/TracesRepositoryImpl.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/GoalExecutionRepositoryImpl.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/PathRepositoryCustom.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/DependencyRepositoryImpl.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/ApplicationRepositoryCustom.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/GoalExecutionRepository.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/BugRepositoryImpl.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/PathRepositoryImpl.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/LibraryIdRepository.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/DependencyRepository.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/ApplicationRepositoryImpl.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/PathRepository.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/ConstructChangeRepository.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/TracesRepository.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/SpaceRepositoryImpl.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/TenantRepository.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/ApplicationRepository.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/PropertyRepository.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/GoalExecutionRepositoryCustom.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/AffectedLibraryRepositoryImpl.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/LibraryRepository.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/BugRepository.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/LibraryRepositoryCustom.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/TracesRepositoryCustom.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/AffectedLibraryRepository.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/AffectedLibraryRepositoryCustom.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/SpaceRepositoryCustom.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/V_AppVulndepRepository.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/LibraryRepositoryImpl.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/ConstructIdRepository.java
-rest-backend/src/main/java/org/eclipse/steady/backend/repo/TenantRepositoryImpl.java
-rest-backend/src/main/java/org/eclipse/steady/backend/model/AffectedLibrary.java
+rest-backend/src/main/java/org/eclipse/steady/backend/rest/ApplicationController.java
+rest-backend/src/main/java/org/eclipse/steady/backend/rest/CoverageController.java
+rest-backend/src/main/java/org/eclipse/steady/backend/rest/LibraryIdController.java
+rest-backend/src/main/java/org/eclipse/steady/backend/rest/LibraryController.java
+rest-backend/src/main/java/org/eclipse/steady/backend/rest/TenantController.java
+rest-backend/src/main/java/org/eclipse/steady/backend/rest/BugController.java
+rest-backend/src/main/java/org/eclipse/steady/backend/rest/HubIntegrationController.java
+rest-backend/src/main/java/org/eclipse/steady/backend/rest/ConfigurationController.java
+rest-backend/src/main/java/org/eclipse/steady/backend/package-info.java
+rest-backend/src/main/java/org/eclipse/steady/backend/util/MavenCentralVerifier.java
+rest-backend/src/main/java/org/eclipse/steady/backend/util/ReferenceUpdater.java
+rest-backend/src/main/java/org/eclipse/steady/backend/util/PyPiVerifier.java
+rest-backend/src/main/java/org/eclipse/steady/backend/util/DependencyUtil.java
+rest-backend/src/main/java/org/eclipse/steady/backend/util/TokenUtil.java
+rest-backend/src/main/java/org/eclipse/steady/backend/util/CacheFilter.java
+rest-backend/src/main/java/org/eclipse/steady/backend/util/Message.java
+rest-backend/src/main/java/org/eclipse/steady/backend/util/ArtifactMaps.java
+rest-backend/src/main/java/org/eclipse/steady/backend/util/DigestVerifier.java
+rest-backend/src/main/java/org/eclipse/steady/backend/util/ServiceWrapper.java
+rest-backend/src/main/java/org/eclipse/steady/backend/util/ResultSetFilter.java
+rest-backend/src/main/java/org/eclipse/steady/backend/util/SmtpClient.java
+rest-backend/src/main/java/org/eclipse/steady/backend/util/VerificationException.java
+rest-backend/src/main/java/org/eclipse/steady/backend/util/ConnectionUtil.java
+rest-backend/src/main/java/org/eclipse/steady/backend/util/DigestVerifierEnumerator.java
+rest-backend/src/main/java/org/eclipse/steady/backend/cve/Cve.java
+rest-backend/src/main/java/org/eclipse/steady/backend/cve/CveReader2.java
rest-backend/src/main/java/org/eclipse/steady/backend/model/ConstructId.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/DependencyUpdate.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/Path.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/ConstructChangeType.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/ConstructChange.java
rest-backend/src/main/java/org/eclipse/steady/backend/model/ConstructIdFilter.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/DependencyIntersection.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/TouchPoint.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/Trace.java
rest-backend/src/main/java/org/eclipse/steady/backend/model/Space.java
-rest-backend/src/main/java/org/eclipse/steady/backend/model/ConstructChange.java
-rest-backend/src/main/java/org/eclipse/steady/backend/model/Library.java
rest-backend/src/main/java/org/eclipse/steady/backend/model/AffectedConstructChange.java
rest-backend/src/main/java/org/eclipse/steady/backend/model/Application.java
-rest-backend/src/main/java/org/eclipse/steady/backend/model/DependencyIntersection.java
-rest-backend/src/main/java/org/eclipse/steady/backend/model/ConstructSearchResult.java
-rest-backend/src/main/java/org/eclipse/steady/backend/model/Dependency.java
-rest-backend/src/main/java/org/eclipse/steady/backend/model/PathNode.java
-rest-backend/src/main/java/org/eclipse/steady/backend/model/VulnerableDependency.java
-rest-backend/src/main/java/org/eclipse/steady/backend/model/Property.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/PackageStatistics.java
rest-backend/src/main/java/org/eclipse/steady/backend/model/Bug.java
-rest-backend/src/main/java/org/eclipse/steady/backend/model/TouchPoint.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/ConstructChangeInDependency.java
rest-backend/src/main/java/org/eclipse/steady/backend/model/GoalExecution.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/V_AppVulndep.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/VulnerableDependency.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/Library.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/ConstructSearchResult.java
rest-backend/src/main/java/org/eclipse/steady/backend/model/Tenant.java
-rest-backend/src/main/java/org/eclipse/steady/backend/model/LibraryId.java
-rest-backend/src/main/java/org/eclipse/steady/backend/model/DependencyUpdate.java
-rest-backend/src/main/java/org/eclipse/steady/backend/model/PackageStatistics.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/AffectedLibrary.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/PathNode.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/Property.java
rest-backend/src/main/java/org/eclipse/steady/backend/model/view/Views.java
-rest-backend/src/main/java/org/eclipse/steady/backend/model/Trace.java
-rest-backend/src/main/java/org/eclipse/steady/backend/model/Path.java
-rest-backend/src/main/java/org/eclipse/steady/backend/model/ConstructChangeInDependency.java
-rest-backend/src/main/java/org/eclipse/steady/backend/model/V_AppVulndep.java
-rest-backend/src/main/java/org/eclipse/steady/backend/model/ConstructChangeType.java
-plugin-gradle/src/main/java/org/eclipse/steady/java/gradle/GradlePluginReport.java
-plugin-gradle/src/main/java/org/eclipse/steady/java/gradle/GradlePluginApp.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/LibraryId.java
+rest-backend/src/main/java/org/eclipse/steady/backend/model/Dependency.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/TenantRepository.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/ApplicationRepositoryCustom.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/AffectedLibraryRepositoryCustom.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/ConstructIdRepository.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/TenantRepositoryCustom.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/ApplicationRepositoryImpl.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/LibraryIdRepository.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/LibraryRepositoryCustom.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/SpaceRepositoryCustom.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/AffectedLibraryRepositoryImpl.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/SpaceRepositoryImpl.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/PropertyRepository.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/BugRepositoryCustom.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/DependencyRepositoryImpl.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/BugRepository.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/V_AppVulndepRepository.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/TracesRepositoryCustom.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/PathRepository.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/PathRepositoryImpl.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/TracesRepositoryImpl.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/PathRepositoryCustom.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/ApplicationRepository.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/DependencyRepository.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/BugRepositoryImpl.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/GoalExecutionRepositoryImpl.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/AffectedLibraryRepository.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/LibraryRepository.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/GoalExecutionRepositoryCustom.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/LibraryRepositoryImpl.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/SpaceRepository.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/TenantRepositoryImpl.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/GoalExecutionRepository.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/DependencyRepositoryCustom.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/TracesRepository.java
+rest-backend/src/main/java/org/eclipse/steady/backend/repo/ConstructChangeRepository.java
+rest-backend/src/main/java/org/eclipse/steady/backend/component/ApplicationExporter.java
+rest-backend/src/main/java/org/eclipse/steady/backend/component/StatisticsContributor.java
+rest-backend/src/main/java/org/eclipse/steady/backend/component/ApplicationExporterThread.java
+plugin-gradle/src/main/java/org/eclipse/steady/java/gradle/VulasPlugin.java
plugin-gradle/src/main/java/org/eclipse/steady/java/gradle/GradlePluginClean.java
+plugin-gradle/src/main/java/org/eclipse/steady/java/gradle/GradlePluginReport.java
+plugin-gradle/src/main/java/org/eclipse/steady/java/gradle/GradlePluginA2C.java
plugin-gradle/src/main/java/org/eclipse/steady/java/gradle/VulasPluginCommon.java
plugin-gradle/src/main/java/org/eclipse/steady/java/gradle/GradleProjectUtilities.java
-plugin-gradle/src/main/java/org/eclipse/steady/java/gradle/GradlePluginA2C.java
-plugin-gradle/src/main/java/org/eclipse/steady/java/gradle/VulasPlugin.java
+plugin-gradle/src/main/java/org/eclipse/steady/java/gradle/GradlePluginApp.java
plugin-gradle/src/main/java/org/eclipse/steady/java/gradle/AbstractVulasTask.java
+shared/src/test/java/org/eclipse/steady/shared/enums/ScopeTest.java
shared/src/test/java/org/eclipse/steady/shared/cache/CacheTest.java
-shared/src/test/java/org/eclipse/steady/shared/categories/Slow.java
-shared/src/test/java/org/eclipse/steady/shared/categories/RequiresNetwork.java
-shared/src/test/java/org/eclipse/steady/shared/categories/Integrated.java
+shared/src/test/java/org/eclipse/steady/shared/util/FileSearchTest.java
+shared/src/test/java/org/eclipse/steady/shared/util/StringUtilTest.java
+shared/src/test/java/org/eclipse/steady/shared/util/StringListTest.java
shared/src/test/java/org/eclipse/steady/shared/util/DigestUtilTest.java
shared/src/test/java/org/eclipse/steady/shared/util/VulasConfigurationTest.java
-shared/src/test/java/org/eclipse/steady/shared/util/FileSearchTest.java
shared/src/test/java/org/eclipse/steady/shared/util/FileUtilTest.java
-shared/src/test/java/org/eclipse/steady/shared/util/StringUtilTest.java
shared/src/test/java/org/eclipse/steady/shared/util/StopWatchTest.java
-shared/src/test/java/org/eclipse/steady/shared/util/StringListTest.java
-shared/src/test/java/org/eclipse/steady/shared/util/TestDirWithFileSearch.java
shared/src/test/java/org/eclipse/steady/shared/util/DirUtilTest.java
-shared/src/test/java/org/eclipse/steady/shared/enums/ScopeTest.java
-shared/src/test/java/org/eclipse/steady/shared/json/VulnerableDependencyJsonTest.java
-shared/src/test/java/org/eclipse/steady/shared/json/JacksonUtilTest.java
+shared/src/test/java/org/eclipse/steady/shared/util/TestDirWithFileSearch.java
shared/src/test/java/org/eclipse/steady/shared/json/JsonBuilderTest.java
+shared/src/test/java/org/eclipse/steady/shared/json/JacksonUtilTest.java
+shared/src/test/java/org/eclipse/steady/shared/json/VulnerableDependencyJsonTest.java
shared/src/test/java/org/eclipse/steady/shared/json/model/metrics/MetricsTest.java
-shared/src/test/java/org/eclipse/steady/shared/model/generic/VersionTest.java
-shared/src/test/java/org/eclipse/steady/shared/model/ApplicationTest.java
shared/src/test/java/org/eclipse/steady/shared/model/IExemptionTest.java
+shared/src/test/java/org/eclipse/steady/shared/model/ApplicationTest.java
+shared/src/test/java/org/eclipse/steady/shared/model/generic/VersionTest.java
+shared/src/test/java/org/eclipse/steady/shared/categories/RequiresNetwork.java
+shared/src/test/java/org/eclipse/steady/shared/categories/Integrated.java
+shared/src/test/java/org/eclipse/steady/shared/categories/Slow.java
lang/src/test/java/org/eclipse/steady/malice/ZipSlipAnalyzerTest.java
lang/src/test/java/org/eclipse/steady/malice/MaliciousnessAnalyzerLoopTest.java
lang/src/test/java/org/eclipse/steady/report/ReportTest.java
-lang/src/test/java/org/eclipse/steady/goals/AbstractGoalTest.java
-lang/src/test/java/org/eclipse/steady/goals/CleanGoalTest.java
lang/src/test/java/org/eclipse/steady/goals/BomGoalTest.java
-lang/src/test/java/org/eclipse/steady/goals/SpaceNewGoalTest.java
lang/src/test/java/org/eclipse/steady/goals/SpaceDelGoalTest.java
-lang-java/src/test/java/org/eclipse/steady/java/monitor/AbstractGoalTest.java
-lang-java/src/test/java/org/eclipse/steady/java/monitor/ClassVisitorTest.java
-lang-java/src/test/java/org/eclipse/steady/java/monitor/ConstructTransformerTest.java
-lang-java/src/test/java/org/eclipse/steady/java/ArchiveAnalysisManagerTest.java
-lang-java/src/test/java/org/eclipse/steady/java/JavaIdTest.java
-lang-java/src/test/java/org/eclipse/steady/java/PomParserTest.java
-lang-java/src/test/java/org/eclipse/steady/java/decompiler/IDecompilerTest.java
-lang-java/src/test/java/org/eclipse/steady/java/JavaFileAnalyzer2Test.java
-lang-java/src/test/java/org/eclipse/steady/java/AarAnalyzerTest.java
-lang-java/src/test/java/org/eclipse/steady/java/JarWriterTest.java
-lang-java/src/test/java/org/eclipse/steady/java/SpringBootAnalyzerTest.java
-lang-java/src/test/java/org/eclipse/steady/java/ClassFileAnalyzerTest.java
-lang-java/src/test/java/org/eclipse/steady/java/ClassPoolUpdaterTest.java
-lang-java/src/test/java/org/eclipse/steady/java/JarAnalyzerTest.java
-lang-java/src/test/java/org/eclipse/steady/java/JsonHelperTest.java
-lang-java/src/test/java/org/eclipse/steady/java/sign/StringSimilarityNGrams.java
-lang-java/src/test/java/org/eclipse/steady/java/sign/gson/ASTDeserializeSignComparatorTest.java
-lang-java/src/test/java/org/eclipse/steady/java/sign/UniqueNamePreprocessorTest.java
-lang-java/src/test/java/org/eclipse/steady/java/sign/SignatureFactoryTest.java
-lang-java/src/test/java/org/eclipse/steady/java/sign/StringSimilarityLevenshtein.java
-lang-java/src/test/java/org/eclipse/steady/java/sign/ASTSignatureComparatorTest.java
-lang-java/src/test/java/org/eclipse/steady/java/sign/StringSimilarity.java
+lang/src/test/java/org/eclipse/steady/goals/CleanGoalTest.java
+lang/src/test/java/org/eclipse/steady/goals/AbstractGoalTest.java
+lang/src/test/java/org/eclipse/steady/goals/SpaceNewGoalTest.java
+lang-java/src/test/java/ClassWithoutPackage.java
+lang-java/src/test/java/NestedDeclarationMess.java
lang-java/src/test/java/org/eclipse/steady/java/WarAnalyzerTest.java
-lang-java/src/test/java/org/eclipse/steady/java/test/EnumTest.java
+lang-java/src/test/java/org/eclipse/steady/java/ClassFileAnalyzerTest.java
+lang-java/src/test/java/org/eclipse/steady/java/ArchiveAnalysisManagerTest.java
lang-java/src/test/java/org/eclipse/steady/java/test/TestAnon.java
-lang-java/src/test/java/org/eclipse/steady/java/test/OuterClass.java
-lang-java/src/test/java/org/eclipse/steady/java/test/ConfigurationKey.java
+lang-java/src/test/java/org/eclipse/steady/java/test/HttpRequestCompletionLog.java
+lang-java/src/test/java/org/eclipse/steady/java/test/EnumTest.java
lang-java/src/test/java/org/eclipse/steady/java/test/Vanilla.java
lang-java/src/test/java/org/eclipse/steady/java/test/ConfigKey.java
-lang-java/src/test/java/org/eclipse/steady/java/test/DrinkEnumExample.java
-lang-java/src/test/java/org/eclipse/steady/java/test/HttpRequestCompletionLog.java
lang-java/src/test/java/org/eclipse/steady/java/test/TestClass$NoNestedClass.java
-lang-java/src/test/java/org/eclipse/steady/java/test/NestedDeclarationMess2.java
+lang-java/src/test/java/org/eclipse/steady/java/test/DrinkEnumExample.java
lang-java/src/test/java/org/eclipse/steady/java/test/Generics.java
-lang-java/src/test/java/org/eclipse/steady/java/test/TestAgainAnon.java
lang-java/src/test/java/org/eclipse/steady/java/test/TestInterface.java
-lang-java/src/test/java/org/eclipse/steady/java/test/HelloWorldAnonymousClasses.java
lang-java/src/test/java/org/eclipse/steady/java/test/NestedDeclarations.java
-lang-java/src/test/java/ClassWithoutPackage.java
-lang-java/src/test/java/NestedDeclarationMess.java
+lang-java/src/test/java/org/eclipse/steady/java/test/ConfigurationKey.java
+lang-java/src/test/java/org/eclipse/steady/java/test/HelloWorldAnonymousClasses.java
+lang-java/src/test/java/org/eclipse/steady/java/test/NestedDeclarationMess2.java
+lang-java/src/test/java/org/eclipse/steady/java/test/OuterClass.java
+lang-java/src/test/java/org/eclipse/steady/java/test/TestAgainAnon.java
+lang-java/src/test/java/org/eclipse/steady/java/JsonHelperTest.java
+lang-java/src/test/java/org/eclipse/steady/java/AarAnalyzerTest.java
+lang-java/src/test/java/org/eclipse/steady/java/SpringBootAnalyzerTest.java
+lang-java/src/test/java/org/eclipse/steady/java/ClassPoolUpdaterTest.java
+lang-java/src/test/java/org/eclipse/steady/java/JarAnalyzerTest.java
+lang-java/src/test/java/org/eclipse/steady/java/PomParserTest.java
+lang-java/src/test/java/org/eclipse/steady/java/JavaIdTest.java
+lang-java/src/test/java/org/eclipse/steady/java/JarWriterTest.java
+lang-java/src/test/java/org/eclipse/steady/java/sign/SignatureFactoryTest.java
+lang-java/src/test/java/org/eclipse/steady/java/sign/ASTSignatureComparatorTest.java
+lang-java/src/test/java/org/eclipse/steady/java/sign/gson/ASTDeserializeSignComparatorTest.java
+lang-java/src/test/java/org/eclipse/steady/java/sign/StringSimilarityLevenshtein.java
+lang-java/src/test/java/org/eclipse/steady/java/sign/UniqueNamePreprocessorTest.java
+lang-java/src/test/java/org/eclipse/steady/java/sign/StringSimilarityNGrams.java
+lang-java/src/test/java/org/eclipse/steady/java/sign/StringSimilarity.java
+lang-java/src/test/java/org/eclipse/steady/java/monitor/ClassVisitorTest.java
+lang-java/src/test/java/org/eclipse/steady/java/monitor/ConstructTransformerTest.java
+lang-java/src/test/java/org/eclipse/steady/java/monitor/AbstractGoalTest.java
+lang-java/src/test/java/org/eclipse/steady/java/JavaFileAnalyzer2Test.java
+lang-java/src/test/java/org/eclipse/steady/java/decompiler/IDecompilerTest.java
+lang-java-reach/src/test/java/org/eclipse/steady/cg/DummyCallgraphConstructor.java
lang-java-reach/src/test/java/org/eclipse/steady/cg/CallgraphTest.java
-lang-java-reach/src/test/java/org/eclipse/steady/cg/Examples.java
lang-java-reach/src/test/java/org/eclipse/steady/cg/CallgraphConstructorFactoryTest.java
-lang-java-reach/src/test/java/org/eclipse/steady/cg/DummyCallgraphConstructor.java
+lang-java-reach/src/test/java/org/eclipse/steady/cg/Examples.java
lang-java-reach-wala/src/test/java/org/eclipse/steady/cg/wala/WalaCallGraphTest.java
lang-java-reach-soot/src/test/java/SootCallGraphTest.java
-lang-python/src/test/java/org/eclipse/steady/python/PythonArchiveAnalyzerTest.java
lang-python/src/test/java/org/eclipse/steady/python/virtualenv/VirtualenvWrapperTest.java
-lang-python/src/test/java/org/eclipse/steady/python/pip/PyWrapperTest.java
-lang-python/src/test/java/org/eclipse/steady/python/pip/PipWrapperTest.java
lang-python/src/test/java/org/eclipse/steady/python/pip/PipInstalledPackageTest.java
+lang-python/src/test/java/org/eclipse/steady/python/pip/PipWrapperTest.java
+lang-python/src/test/java/org/eclipse/steady/python/pip/PyWrapperTest.java
+lang-python/src/test/java/org/eclipse/steady/python/PythonArchiveAnalyzerTest.java
lang-python/src/test/java/org/eclipse/steady/python/ProcessWrapperTest.java
lang-python/src/test/java/org/eclipse/steady/python/PythonFileAnalyzerTest.java
repo-client/src/test/java/org/eclipse/steady/git/GitTest.java
patch-analyzer/src/test/java/org/eclipse/steady/patcha/IT01_PatchAnalyzerIT.java
patch-analyzer/src/test/java/org/eclipse/steady/patcha/FileComparatorTest.java
-patch-lib-analyzer/src/test/java/org/eclipse/steady/patcheval/CiaTest.java
patch-lib-analyzer/src/test/java/org/eclipse/steady/patcheval/VersionTest.java
patch-lib-analyzer/src/test/java/org/eclipse/steady/patcheval/package-info.java
-kb-importer/src/test/java/org/eclipse/steady/kb/ZipUtil.java
-kb-importer/src/test/java/org/eclipse/steady/kb/task/TestImportVulnerability_CVE_2017_2617.java
-kb-importer/src/test/java/org/eclipse/steady/kb/task/TestImportVulnerability.java
-kb-importer/src/test/java/org/eclipse/steady/kb/task/MockBackConnector.java
-kb-importer/src/test/java/org/eclipse/steady/kb/task/TestImportAffectedLibraries.java
-kb-importer/src/test/java/org/eclipse/steady/kb/MainTest.java
-kb-importer/src/test/java/org/eclipse/steady/kb/util/MetadataTest.java
-kb-importer/src/test/java/org/eclipse/steady/kb/TestPythonConstructs.java
+patch-lib-analyzer/src/test/java/org/eclipse/steady/patcheval/CiaTest.java
kb-importer/src/test/java/org/eclipse/steady/kb/TestConstructs.java
kb-importer/src/test/java/org/eclipse/steady/kb/command/ImportTest.java
kb-importer/src/test/java/org/eclipse/steady/kb/command/CommandParserTest.java
-cli-scanner/src/test/java/org/eclipse/steady/cli/FileAnalyzerTest.java
-cli-scanner/src/test/java/org/eclipse/steady/cli/AbstractGoalTest.java
+kb-importer/src/test/java/org/eclipse/steady/kb/util/MetadataTest.java
+kb-importer/src/test/java/org/eclipse/steady/kb/MainTest.java
+kb-importer/src/test/java/org/eclipse/steady/kb/TestPythonConstructs.java
+kb-importer/src/test/java/org/eclipse/steady/kb/task/TestImportVulnerability.java
+kb-importer/src/test/java/org/eclipse/steady/kb/task/TestImportVulnerability_CVE_2017_2617.java
+kb-importer/src/test/java/org/eclipse/steady/kb/task/TestImportAffectedLibraries.java
+kb-importer/src/test/java/org/eclipse/steady/kb/task/MockBackConnector.java
+kb-importer/src/test/java/org/eclipse/steady/kb/ZipUtil.java
cli-scanner/src/test/java/org/eclipse/steady/cli/VulasCliTest.java
+cli-scanner/src/test/java/org/eclipse/steady/cli/AbstractGoalTest.java
+cli-scanner/src/test/java/org/eclipse/steady/cli/FileAnalyzerTest.java
plugin-maven/src/test/java/org/eclipse/steady/java/mvn/VulasAgentOptionsTests.java
plugin-maven/src/test/java/org/eclipse/steady/java/mvn/AbstractVulasMojoTest.java
plugin-maven/src/test/java/org/eclipse/steady/java/mvn/TestProjectStub.java
-rest-lib-utils/src/test/java/org/eclipse/steady/cia/dependencyfinder/JarDiffCmdTest.java
rest-lib-utils/src/test/java/org/eclipse/steady/cia/rest/IT03_ClassControllerTest.java
+rest-lib-utils/src/test/java/org/eclipse/steady/cia/rest/IT02_SpringControllerTest.java
rest-lib-utils/src/test/java/org/eclipse/steady/cia/rest/IT01_ArtifactControllerTest.java
rest-lib-utils/src/test/java/org/eclipse/steady/cia/rest/IT04_ConstructControllerTest.java
-rest-lib-utils/src/test/java/org/eclipse/steady/cia/rest/IT02_SpringControllerTest.java
rest-lib-utils/src/test/java/org/eclipse/steady/cia/model/maven/ArtifactTest.java
-rest-backend/src/test/java/org/eclipse/steady/backend/cve/CveTest.java
-rest-backend/src/test/java/org/eclipse/steady/backend/cve/NvdRestServiceMockup.java
-rest-backend/src/test/java/org/eclipse/steady/backend/cve/CveReader2Test.java
-rest-backend/src/test/java/org/eclipse/steady/backend/rest/ApplicationControllerTest.java
-rest-backend/src/test/java/org/eclipse/steady/backend/rest/LibraryControllerTest.java
+rest-lib-utils/src/test/java/org/eclipse/steady/cia/dependencyfinder/JarDiffCmdTest.java
rest-backend/src/test/java/org/eclipse/steady/backend/rest/HubIntegrationControllerTest.java
-rest-backend/src/test/java/org/eclipse/steady/backend/rest/SpaceControllerTest.java
-rest-backend/src/test/java/org/eclipse/steady/backend/rest/BugControllerTest.java
rest-backend/src/test/java/org/eclipse/steady/backend/rest/IT02_CoverageControllerIT.java
+rest-backend/src/test/java/org/eclipse/steady/backend/rest/BugControllerTest.java
+rest-backend/src/test/java/org/eclipse/steady/backend/rest/LibraryControllerTest.java
+rest-backend/src/test/java/org/eclipse/steady/backend/rest/SpaceControllerTest.java
+rest-backend/src/test/java/org/eclipse/steady/backend/rest/ApplicationControllerTest.java
rest-backend/src/test/java/org/eclipse/steady/backend/rest/TenantControllerTest.java
rest-backend/src/test/java/org/eclipse/steady/backend/util/ConnectionUtilTest.java
rest-backend/src/test/java/org/eclipse/steady/backend/util/SmtpClientTest.java
-rest-backend/src/test/java/org/eclipse/steady/backend/util/PyPiVerifierTest.java
-rest-backend/src/test/java/org/eclipse/steady/backend/util/ArtifactMapsTest.java
rest-backend/src/test/java/org/eclipse/steady/backend/util/package-info.java
+rest-backend/src/test/java/org/eclipse/steady/backend/util/ArtifactMapsTest.java
+rest-backend/src/test/java/org/eclipse/steady/backend/util/PyPiVerifierTest.java
+rest-backend/src/test/java/org/eclipse/steady/backend/cve/CveReader2Test.java
+rest-backend/src/test/java/org/eclipse/steady/backend/cve/CveTest.java
+rest-backend/src/test/java/org/eclipse/steady/backend/cve/NvdRestServiceMockup.java
rest-backend/src/test/java/org/eclipse/steady/backend/component/ApplicationExporterTest.java
-plugin-gradle/src/test/java/org/eclipse/steady/java/gradle/AndroidLibsTest.java
plugin-gradle/src/test/java/org/eclipse/steady/java/gradle/VulasBaseTest.java
-plugin-gradle/src/test/java/org/eclipse/steady/java/gradle/JavaLibTest.java
plugin-gradle/src/test/java/org/eclipse/steady/java/gradle/GradleTestProject.java
+plugin-gradle/src/test/java/org/eclipse/steady/java/gradle/AndroidLibsTest.java
+plugin-gradle/src/test/java/org/eclipse/steady/java/gradle/JavaLibTest.java
diff --git a/kb-importer/pom.xml b/kb-importer/pom.xml
index a6e75974e..2d528a286 100755
--- a/kb-importer/pom.xml
+++ b/kb-importer/pom.xml
@@ -35,6 +35,16 @@
+
+ com.fasterxml.jackson.core
+ jackson-core
+ 2.9.10
+
+
+ org.yaml
+ snakeyaml
+ 1.30
+
commons-cli
commons-cli
diff --git a/kb-importer/src/main/java/org/eclipse/steady/kb/ImporterController.java b/kb-importer/src/main/java/org/eclipse/steady/kb/ImporterController.java
new file mode 100644
index 000000000..5402d67f7
--- /dev/null
+++ b/kb-importer/src/main/java/org/eclipse/steady/kb/ImporterController.java
@@ -0,0 +1,9 @@
+// import org.springframework.web.bind.annotation.RestController;
+
+// @RestController
+class ImporterController {
+
+ public void start() {
+ return;
+ }
+}
diff --git a/kb-importer/src/main/java/org/eclipse/steady/kb/Main.java b/kb-importer/src/main/java/org/eclipse/steady/kb/Main.java
index d893300a6..ca5a62d46 100755
--- a/kb-importer/src/main/java/org/eclipse/steady/kb/Main.java
+++ b/kb-importer/src/main/java/org/eclipse/steady/kb/Main.java
@@ -18,7 +18,6 @@
*/
package org.eclipse.steady.kb;
-import org.eclipse.steady.kb.command.CommandExecutor;
/**
* Main class.
@@ -30,6 +29,8 @@ public class Main {
* @param _args an array of {@link java.lang.String} objects
*/
public static void main(String[] _args) {
- CommandExecutor.getInstance().execute(_args);
+ // CommandExecutor.getInstance().execute(_args);
+ Manager manager = new Manager();
+ manager.start("/kb-importer/data/statements");
}
}
diff --git a/kb-importer/src/main/java/org/eclipse/steady/kb/Manager.java b/kb-importer/src/main/java/org/eclipse/steady/kb/Manager.java
new file mode 100644
index 000000000..ffbf305d6
--- /dev/null
+++ b/kb-importer/src/main/java/org/eclipse/steady/kb/Manager.java
@@ -0,0 +1,40 @@
+package org.eclipse.steady.kb;
+
+import java.util.Map;
+import java.util.HashMap;
+
+import java.io.File;
+
+import org.eclipse.steady.kb.command.Import;
+
+class Manager {
+
+ // private ThreadPoolExecutor ....;
+ private Map runningProcesses = new HashMap(); // Lock ?
+
+ public void start(String statementsPath) {
+
+ File statementsDir = new File(statementsPath);
+ System.out.println(statementsDir);
+ File[] subdirs = statementsDir.listFiles();
+ System.out.println(subdirs);
+
+ HashMap args = new HashMap();
+ args.put("o", false);
+ args.put("v", false);
+ for (File dir : subdirs) {
+ if (dir.isDirectory()) {
+ String dirPath = dir.getPath();
+ args.put(Import.DIRECTORY_OPTION, dirPath);
+ Import command = new Import();
+ command.run(args);
+ }
+ }
+ }
+
+
+ /*public String status() {
+ return "";
+ }*/
+
+}
diff --git a/kb-importer/src/main/java/org/eclipse/steady/kb/command/Import.java b/kb-importer/src/main/java/org/eclipse/steady/kb/command/Import.java
index 0be2973ed..48eaa8088 100755
--- a/kb-importer/src/main/java/org/eclipse/steady/kb/command/Import.java
+++ b/kb-importer/src/main/java/org/eclipse/steady/kb/command/Import.java
@@ -46,6 +46,7 @@
public class Import implements Command {
private static final String METADATA_JSON = "metadata.json";
+ private static final String STATEMENT_YAML = "statement.yaml";
public static final String UPLOAD_CONSTRUCT_OPTION = "u";
public static final String DIRECTORY_OPTION = "d";
public static final String OVERWRITE_OPTION = "o";
@@ -89,7 +90,7 @@ public void run(HashMap args) {
? CoreConfiguration.ConnectType.READ_WRITE.toString()
: CoreConfiguration.ConnectType.READ_ONLY.toString()));
- if (FileUtil.isAccessibleFile(dirPath + File.separator + METADATA_JSON)) {
+ if (FileUtil.isAccessibleFile(dirPath + File.separator + STATEMENT_YAML)) {
importVuln(args, dirPath);
} else if (FileUtil.isAccessibleDirectory(dirPath)) {
File directory = new File(dirPath);
@@ -98,11 +99,12 @@ public void run(HashMap args) {
for (File file : fList) {
if (file.isDirectory()) {
if (FileUtil.isAccessibleFile(
- file.getAbsolutePath() + File.separator + METADATA_JSON)) {
+ file.getAbsolutePath() + File.separator + STATEMENT_YAML)) {
importVuln(args, file.getAbsolutePath());
} else {
Import.log.warn(
- "Skipping {} as the directory does not contain metdata.json file",
+ "Skipping {} as the directory does not contain statement.yaml or metdata.json"
+ + " file",
file.getAbsolutePath());
}
}
@@ -117,7 +119,8 @@ public void run(HashMap args) {
private void importVuln(HashMap args, String dirPath) {
Vulnerability vuln = null;
try {
- vuln = Metadata.getVulnerabilityMetadata(dirPath);
+ // vuln = Metadata.getVulnerabilityMetadata(dirPath);
+ vuln = Metadata.getFromYaml(dirPath + File.separator + STATEMENT_YAML);
} catch (JsonSyntaxException | IOException e1) {
Import.log.error(e1.getMessage(), e1);
return;
@@ -196,4 +199,43 @@ public void validate(HashMap args) throws ValidationException {
throw new ValidationException("directory " + dir + "does not exist");
}
}
+
+ public void extractOrClone(File dir) {
+ String dirPath = dir.getPath();
+ // String cmd = "cd " + dirPath + "; ls";
+ File tarFile = null;
+ // System.out.println(dirPath);
+ File[] cveFiles = dir.listFiles();
+ for (File cveFile : cveFiles) {
+ String filename = cveFile.getName();
+ System.out.println(filename);
+ String[] splitted = filename.split("[.]");
+ if (splitted.length == 0) {
+ continue;
+ }
+ String extension = splitted[splitted.length - 1];
+ if (extension.equals("tar")
+ || (splitted.length > 2 && splitted[splitted.length - 2].equals("tar"))) {
+ System.out.println("tar file found");
+ tarFile = cveFile;
+ }
+ }
+
+ if (tarFile != null) {
+ System.out.println("tarFile != null");
+ String extractCommand = "tar -xf " + tarFile.getPath() + " --directory " + dirPath;
+ try {
+ System.out.println("before exec");
+ Process process = Runtime.getRuntime().exec(extractCommand);
+ System.out.println("after exec");
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ } else {
+ System.out.println("tarFile == null");
+ // How can I get the repo_url, commit_id and branch?
+ // String gitCloneCommand = "git clone " + tarFile.getPath() + " --directory " + dirPath;
+ // for F in $(git -C $repo_dir diff --name-only $commit_id^..$commit_id)
+ }
+ }
}
diff --git a/kb-importer/src/main/java/org/eclipse/steady/kb/util/Metadata.java b/kb-importer/src/main/java/org/eclipse/steady/kb/util/Metadata.java
index 2b0ed8c92..2b4f56483 100755
--- a/kb-importer/src/main/java/org/eclipse/steady/kb/util/Metadata.java
+++ b/kb-importer/src/main/java/org/eclipse/steady/kb/util/Metadata.java
@@ -20,15 +20,27 @@
import java.io.File;
import java.io.IOException;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.nio.file.Files;
import com.google.gson.Gson;
import com.google.gson.JsonSyntaxException;
+import org.yaml.snakeyaml.Yaml;
+
import org.apache.commons.lang.StringUtils;
import org.apache.logging.log4j.Logger;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.List;
+import java.util.ArrayList;
+
+import org.eclipse.steady.shared.util.FileUtil;
import org.eclipse.steady.kb.model.Commit;
import org.eclipse.steady.kb.model.Vulnerability;
-import org.eclipse.steady.shared.util.FileUtil;
+import org.eclipse.steady.kb.model.Note;
+import org.eclipse.steady.kb.model.Artifact;
/**
* Metadata
@@ -94,4 +106,50 @@ public static Vulnerability getVulnerabilityMetadata(String rootDir)
return metadata;
}
+
+ public static Vulnerability getFromYaml(String metadataPathString) throws IOException {
+ // Yaml yaml = new Yaml(new Constructor(Vulnerability.class));
+ Path metadataPath = Paths.get(metadataPathString);
+ Yaml yaml = new Yaml();
+
+
+ // String metadataString = File.readString(dirPath + "/metadata.yaml");
+ String metadataString = new String(Files.readAllBytes(metadataPath));
+
+ // Vulnerability vulnerability = yaml.load(metadataString);
+ Map vulnerabilityMap = yaml.load(metadataString);
+ // ObjectMapper objectMapper = new ObjectMapper();
+ // Vulnerability vulnerability = objectMapper.convertValue(vulnerabilityMap,
+ // Vulnerability.class);
+
+ Vulnerability vulnerability = new Vulnerability();
+
+ vulnerability.setVulnId((String) vulnerabilityMap.get("vulnerability_id"));
+
+ List> notesMaps =
+ (List>) vulnerabilityMap.get("notes");
+ List notes = new ArrayList();
+ for (HashMap noteMap : notesMaps) {
+ Note note = new Note();
+ note.setText((String) noteMap.get("text"));
+ List links = (List) noteMap.get("links");
+ note.setLinks(links);
+ notes.add(note);
+ }
+ vulnerability.setNotes(notes);
+
+ List> artifactsMaps =
+ (List>) vulnerabilityMap.get("artifacts");
+ List artifacts = new ArrayList();
+ for (HashMap artifactMap : artifactsMaps) {
+ Artifact artifact = new Artifact();
+ artifact.setId((String) artifactMap.get("id"));
+ artifact.setReason((String)artifactMap.get("reason"));
+ artifact.setAffected((Boolean)artifactMap.get("affected"));
+ artifacts.add(artifact);
+ }
+ vulnerability.setArtifacts(artifacts);
+
+ return vulnerability;
+ }
}
diff --git a/non-compliant-files.txt b/non-compliant-files.txt
deleted file mode 100644
index 9de491499..000000000
--- a/non-compliant-files.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-kb-importer/src/test/java/org/eclipse/steady/kb/task/TestImportVulnerability.java
-kb-importer/src/test/java/org/eclipse/steady/kb/command/ImportTest.java
diff --git a/pom.xml b/pom.xml
index cd99d756e..fe6f9c4d6 100755
--- a/pom.xml
+++ b/pom.xml
@@ -276,6 +276,11 @@
+
+ org.yaml
+ snakeyaml
+ 1.30
+
javax.validation
validation-api
From e0dcbffd8f0c01f6c7e2a6260e89c6eace5cc6ca Mon Sep 17 00:00:00 2001
From: Pedro GALVAO
Date: Wed, 13 Apr 2022 17:11:39 +0200
Subject: [PATCH 10/83] fixed some problems. still not working
---
.../main/java/org/eclipse/steady/kb/Main.java | 32 ++++++++++++++++++-
.../java/org/eclipse/steady/kb/Manager.java | 13 ++++----
2 files changed, 38 insertions(+), 7 deletions(-)
diff --git a/kb-importer/src/main/java/org/eclipse/steady/kb/Main.java b/kb-importer/src/main/java/org/eclipse/steady/kb/Main.java
index ca5a62d46..a8f255532 100755
--- a/kb-importer/src/main/java/org/eclipse/steady/kb/Main.java
+++ b/kb-importer/src/main/java/org/eclipse/steady/kb/Main.java
@@ -18,6 +18,13 @@
*/
package org.eclipse.steady.kb;
+import java.util.HashMap;
+import org.apache.commons.cli.Options;
+
+import org.eclipse.steady.kb.command.Import;
+import org.eclipse.steady.kb.command.Command;
+import org.eclipse.steady.kb.command.CommandParser;
+import org.eclipse.steady.kb.exception.CommandLineParserException;
/**
* Main class.
@@ -30,7 +37,30 @@ public class Main {
*/
public static void main(String[] _args) {
// CommandExecutor.getInstance().execute(_args);
+
+ Command command = new Import();
+ Options commandOptions = command.getOptions();
+
+ HashMap mapCommandOptionValues ;
+ try {
+ mapCommandOptionValues = CommandParser.parse(_args, commandOptions);
+ } catch (CommandLineParserException e) {
+ System.out.println("commandLineParserException");
+ //log.error(e.getMessage());
+ //printHelp(commandOptions);
+ return;
+ }
+ mapCommandOptionValues.put(Import.DIRECTORY_OPTION, "/kb-importer/data");
+
+ /*try {
+ command.validate(mapCommandOptionValues);
+ } catch (ValidationException e) {
+ log.error(e.getMessage());
+ return;
+ }*/
+
+ command.run(mapCommandOptionValues);
Manager manager = new Manager();
- manager.start("/kb-importer/data/statements");
+ manager.start("/kb-importer/data/statements", mapCommandOptionValues);
}
}
diff --git a/kb-importer/src/main/java/org/eclipse/steady/kb/Manager.java b/kb-importer/src/main/java/org/eclipse/steady/kb/Manager.java
index ffbf305d6..4a46f06e4 100644
--- a/kb-importer/src/main/java/org/eclipse/steady/kb/Manager.java
+++ b/kb-importer/src/main/java/org/eclipse/steady/kb/Manager.java
@@ -6,28 +6,29 @@
import java.io.File;
import org.eclipse.steady.kb.command.Import;
+import org.eclipse.steady.kb.command.Command;
class Manager {
// private ThreadPoolExecutor ....;
private Map runningProcesses = new HashMap(); // Lock ?
- public void start(String statementsPath) {
+ public void start(String statementsPath,
+ HashMap mapCommandOptionValues) {
File statementsDir = new File(statementsPath);
System.out.println(statementsDir);
File[] subdirs = statementsDir.listFiles();
System.out.println(subdirs);
- HashMap args = new HashMap();
- args.put("o", false);
- args.put("v", false);
for (File dir : subdirs) {
if (dir.isDirectory()) {
String dirPath = dir.getPath();
- args.put(Import.DIRECTORY_OPTION, dirPath);
+ mapCommandOptionValues.put(Import.DIRECTORY_OPTION, dirPath);
+ System.out.println("mapCommandOptionValues");
+ System.out.println(mapCommandOptionValues);
Import command = new Import();
- command.run(args);
+ command.run(mapCommandOptionValues);
}
}
}
From 8247b13408116b6ada22ac9dcea8a64663c11d5d Mon Sep 17 00:00:00 2001
From: Pedro GALVAO
Date: Fri, 15 Apr 2022 17:29:18 +0200
Subject: [PATCH 11/83] Changing architecture (contains errors)
---
java-files.txt | 1 +
.../java/org/eclipse/steady/kb/Import.java | 91 +++++++++++++++++++
.../main/java/org/eclipse/steady/kb/Main.java | 23 -----
.../java/org/eclipse/steady/kb/Manager.java | 66 +++++++++-----
.../org/eclipse/steady/kb/command/Import.java | 73 ++++++++++++---
.../steady/kb/model/Vulnerability.java | 10 ++
.../org/eclipse/steady/kb/util/Metadata.java | 72 ++++++++++-----
7 files changed, 256 insertions(+), 80 deletions(-)
create mode 100644 kb-importer/src/main/java/org/eclipse/steady/kb/Import.java
diff --git a/java-files.txt b/java-files.txt
index 62e009aa2..23a78b27a 100644
--- a/java-files.txt
+++ b/java-files.txt
@@ -315,6 +315,7 @@ kb-importer/src/main/java/org/eclipse/steady/kb/model/Commit.java
kb-importer/src/main/java/org/eclipse/steady/kb/model/Artifact.java
kb-importer/src/main/java/org/eclipse/steady/kb/model/Vulnerability.java
kb-importer/src/main/java/org/eclipse/steady/kb/model/Note.java
+kb-importer/src/main/java/org/eclipse/steady/kb/Import.java
kb-importer/src/main/java/org/eclipse/steady/kb/ImporterController.java
cli-scanner/src/main/java/org/eclipse/steady/cli/package-info.java
cli-scanner/src/main/java/org/eclipse/steady/cli/VulasCli.java
diff --git a/kb-importer/src/main/java/org/eclipse/steady/kb/Import.java b/kb-importer/src/main/java/org/eclipse/steady/kb/Import.java
new file mode 100644
index 000000000..a46bb391e
--- /dev/null
+++ b/kb-importer/src/main/java/org/eclipse/steady/kb/Import.java
@@ -0,0 +1,91 @@
+
+
+class Import implements Runnable {
+
+ private static final SOURCE_TAR = "changed-source-code.tar.gz"
+ private static final STATEMENT_YAML = "statement.yaml"
+
+ private static final Logger log = org.apache.logging.log4j.LogManager.getLogger();
+
+ private BackendConnector backendConnector;
+
+ public Import(Path vulnDir) {
+ this.vulnDir = vulnDir;
+ }
+
+ @Override
+ public void run() {
+
+ /* How to pass the argumens?
+ set configuration in the manager instead?
+ Object uploadConstruct = args.get(UPLOAD_CONSTRUCT_OPTION);
+ VulasConfiguration.getGlobal()
+ .setProperty(
+ CoreConfiguration.BACKEND_CONNECT,
+ (uploadConstruct != null
+ ? CoreConfiguration.ConnectType.READ_WRITE.toString()
+ : CoreConfiguration.ConnectType.READ_ONLY.toString()));*/
+
+ Boolean overwrite = (Boolean) args.get(OVERWRITE_OPTION);
+ if (bugExists) {
+ if (overwrite) {
+ args.put(DELETE, true);
+ } else {
+ log.info("Bug [{}] already exists in backend, analysis will be skipped", vulnId);
+ return;
+ }
+ }
+ Path statementPath = findStatementPath();
+ if (statementPath != null) {
+ Vulnerability vuln = Metadata.getFromYaml(statementPath);
+
+ ExtractOrClone extractOrClone = new ExtractOrClone(this.vulnDir, args);
+ ImportVulnerability importVulnerability = new ImportVulnerability(vuln, args);
+ ImportAffectedLibraries importAffectedLibraries = new ImportAffectedLibraries(vuln, args);
+
+ extractOrClone.execute();
+ importVulnerability.execute();
+ importAffectedLibraries.execute();
+ }
+
+
+ }
+
+ public Path findTarPath() {
+ if (FileUtil.isAccessibleFile(vulnDir + File.separator + SOURCE_TAR)) {
+ return vulnDir + File.separator + SOURCE_TAR;
+ }
+ }
+
+ public Path findStatementPath() {
+ // TODO: Should also check for metadata.json?
+ // Review this function
+ if (FileUtil.isAccessibleFile(vulnDir + File.separator + STATEMENT_YAML)) {
+ return vulnDir + File.separator + STATEMENT_YAML;
+ }
+ /* Since there is one Import task per vulnerability, there is no need to loop over subdirectories
+ else if (FileUtil.isAccessibleDirectory(vulnDir)) {
+ File directory = new File(vulnDir);
+ File[] fList = directory.listFiles();
+ if (fList != null) {
+ for (File file : fList) {
+ if (file.isDirectory()) {
+ if (FileUtil.isAccessibleFile(
+ file.getAbsolutePath() + File.separator + STATEMENT_YAML)) {
+ return file.getAbsolutePath() + File.separator + STATEMENT_YAML;
+ } else {
+ Import.log.warn(
+ "Skipping {} as the directory does not contain statement.yaml"
+ + " file",
+ file.getAbsolutePath());
+ }
+ }
+ }
+ }
+ }*/
+ else {
+ Import.log.error("Invalid directory {}", vulnDir);
+ }
+ return null;
+ }
+}
\ No newline at end of file
diff --git a/kb-importer/src/main/java/org/eclipse/steady/kb/Main.java b/kb-importer/src/main/java/org/eclipse/steady/kb/Main.java
index a8f255532..9164de6e7 100755
--- a/kb-importer/src/main/java/org/eclipse/steady/kb/Main.java
+++ b/kb-importer/src/main/java/org/eclipse/steady/kb/Main.java
@@ -36,29 +36,6 @@ public class Main {
* @param _args an array of {@link java.lang.String} objects
*/
public static void main(String[] _args) {
- // CommandExecutor.getInstance().execute(_args);
-
- Command command = new Import();
- Options commandOptions = command.getOptions();
-
- HashMap mapCommandOptionValues ;
- try {
- mapCommandOptionValues = CommandParser.parse(_args, commandOptions);
- } catch (CommandLineParserException e) {
- System.out.println("commandLineParserException");
- //log.error(e.getMessage());
- //printHelp(commandOptions);
- return;
- }
- mapCommandOptionValues.put(Import.DIRECTORY_OPTION, "/kb-importer/data");
-
- /*try {
- command.validate(mapCommandOptionValues);
- } catch (ValidationException e) {
- log.error(e.getMessage());
- return;
- }*/
-
command.run(mapCommandOptionValues);
Manager manager = new Manager();
manager.start("/kb-importer/data/statements", mapCommandOptionValues);
diff --git a/kb-importer/src/main/java/org/eclipse/steady/kb/Manager.java b/kb-importer/src/main/java/org/eclipse/steady/kb/Manager.java
index 4a46f06e4..86331a82e 100644
--- a/kb-importer/src/main/java/org/eclipse/steady/kb/Manager.java
+++ b/kb-importer/src/main/java/org/eclipse/steady/kb/Manager.java
@@ -5,34 +5,56 @@
import java.io.File;
-import org.eclipse.steady.kb.command.Import;
+import org.eclipse.steady.kb.Import;
import org.eclipse.steady.kb.command.Command;
class Manager {
- // private ThreadPoolExecutor ....;
- private Map runningProcesses = new HashMap(); // Lock ?
-
- public void start(String statementsPath,
- HashMap mapCommandOptionValues) {
-
- File statementsDir = new File(statementsPath);
- System.out.println(statementsDir);
- File[] subdirs = statementsDir.listFiles();
- System.out.println(subdirs);
-
- for (File dir : subdirs) {
- if (dir.isDirectory()) {
- String dirPath = dir.getPath();
- mapCommandOptionValues.put(Import.DIRECTORY_OPTION, dirPath);
- System.out.println("mapCommandOptionValues");
- System.out.println(mapCommandOptionValues);
- Import command = new Import();
- command.run(mapCommandOptionValues);
- }
+ private ThreadPoolExecutor executor =
+ (ThreadPoolExecutor) Executors.newCachedThreadPool();
+
+ enum VulnStatus {
+ NOT_STARTED,
+ PROCESSING,
+ IMPORTED,
+ FAILED
}
- }
+
+ private Map vulnerabilitiesStatus = new HashMap();
+
+ public void start(String statementsPath,
+ HashMap mapCommandOptionValues) {
+
+ File statementsDir = new File(statementsPath);
+ File[] subdirs = statementsDir.listFiles();
+
+ setUploadConfiguration(mapCommandOptionValues);
+
+ for (File dir : subdirs) {
+ if (dir.isDirectory(){
+ vulnerabilitiesStatus.put(dir.getName(), VulnStatus.NOT_STARTED);
+ }
+ }
+ for (File dir : vulnerabilitiesStatus.keySet()){
+ //synchronized (vulnerabilitiesStatus.get(dir.getName())) {
+ String dirPath = dir.getPath();
+ mapCommandOptionValues.put(Import.DIRECTORY_OPTION, dirPath);
+ Import import = new Import(mapCommandOptionValues);
+ executor.execute(import);
+ //}
+ }
+ }
+
+ private void setUploadConfiguration() {
+ Object uploadConstruct = args.get(UPLOAD_CONSTRUCT_OPTION);
+ VulasConfiguration.getGlobal()
+ .setProperty(
+ CoreConfiguration.BACKEND_CONNECT,
+ (uploadConstruct != null
+ ? CoreConfiguration.ConnectType.READ_WRITE.toString()
+ : CoreConfiguration.ConnectType.READ_ONLY.toString()));
+ }
/*public String status() {
return "";
diff --git a/kb-importer/src/main/java/org/eclipse/steady/kb/command/Import.java b/kb-importer/src/main/java/org/eclipse/steady/kb/command/Import.java
index 48eaa8088..a0ed2523a 100755
--- a/kb-importer/src/main/java/org/eclipse/steady/kb/command/Import.java
+++ b/kb-importer/src/main/java/org/eclipse/steady/kb/command/Import.java
@@ -22,9 +22,13 @@
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
+import java.nio.file.Path;
import java.util.HashMap;
+import java.util.Map;
import java.util.List;
+import java.util.ArrayList;
+import org.yaml.snakeyaml.Yaml;
import com.google.gson.JsonSyntaxException;
import org.apache.commons.cli.Options;
@@ -33,6 +37,7 @@
import org.eclipse.steady.core.util.CoreConfiguration;
import org.eclipse.steady.kb.exception.ValidationException;
import org.eclipse.steady.kb.model.Vulnerability;
+import org.eclipse.steady.kb.model.Commit;
import org.eclipse.steady.kb.task.Task;
import org.eclipse.steady.kb.task.TaskProvider;
import org.eclipse.steady.kb.util.Metadata;
@@ -99,11 +104,11 @@ public void run(HashMap args) {
for (File file : fList) {
if (file.isDirectory()) {
if (FileUtil.isAccessibleFile(
- file.getAbsolutePath() + File.separator + STATEMENT_YAML)) {
+ file.getAbsolutePath() + File.separator + STATEMENT_YAML)) {
importVuln(args, file.getAbsolutePath());
} else {
Import.log.warn(
- "Skipping {} as the directory does not contain statement.yaml or metdata.json"
+ "Skipping {} as the directory does not contain statement.yaml or metadata.json"
+ " file",
file.getAbsolutePath());
}
@@ -120,7 +125,11 @@ private void importVuln(HashMap args, String dirPath) {
Vulnerability vuln = null;
try {
// vuln = Metadata.getVulnerabilityMetadata(dirPath);
- vuln = Metadata.getFromYaml(dirPath + File.separator + STATEMENT_YAML);
+ vuln =
+ Metadata.getFromYaml(
+ dirPath + File.separator + STATEMENT_YAML); // this could be skipped in some cases
+ System.out.println("Vulnerability from YAML");
+ System.out.println(vuln);
} catch (JsonSyntaxException | IOException e1) {
Import.log.error(e1.getMessage(), e1);
return;
@@ -150,6 +159,36 @@ private void importVuln(HashMap args, String dirPath) {
}
}
+ Yaml yaml = new Yaml();
+ Path metadataPath = Paths.get(dirPath + File.separator + STATEMENT_YAML);
+ String metadataString;
+ try {
+ metadataString = new String(Files.readAllBytes(metadataPath));
+ } catch (IOException e) {
+ e.printStackTrace();
+ return;
+ }
+ Map vulnerabilityMap = yaml.load(metadataString);
+ List> fixes =
+ (List>) vulnerabilityMap.get("fixes");
+ List commitList = new ArrayList();
+ if (fixes != null) {
+ for (HashMap fix : fixes) {
+ String branch = (String) fix.get("id");
+ List> commits = (List>) fix.get("commits");
+ for (HashMap commitMap : commits) {
+ Commit commit = new Commit();
+ String repository = commitMap.get("repository");
+ String commitId = commitMap.get("id");
+ commit.setRepoUrl(repository);
+ commit.setCommitId(commitId);
+ commit.setBranch(branch);
+ commitList.add(commit);
+ }
+ }
+ }
+ this.extractOrClone(new File(dirPath), commitList);
+
List importTasks = TaskProvider.getInstance().getTasks(Command.NAME.IMPORT);
for (Task task : importTasks) {
@@ -200,15 +239,12 @@ public void validate(HashMap args) throws ValidationException {
}
}
- public void extractOrClone(File dir) {
+ public void extractOrClone(File dir, List commits) {
String dirPath = dir.getPath();
- // String cmd = "cd " + dirPath + "; ls";
File tarFile = null;
- // System.out.println(dirPath);
File[] cveFiles = dir.listFiles();
for (File cveFile : cveFiles) {
String filename = cveFile.getName();
- System.out.println(filename);
String[] splitted = filename.split("[.]");
if (splitted.length == 0) {
continue;
@@ -216,25 +252,36 @@ public void extractOrClone(File dir) {
String extension = splitted[splitted.length - 1];
if (extension.equals("tar")
|| (splitted.length > 2 && splitted[splitted.length - 2].equals("tar"))) {
- System.out.println("tar file found");
tarFile = cveFile;
}
}
if (tarFile != null) {
- System.out.println("tarFile != null");
String extractCommand = "tar -xf " + tarFile.getPath() + " --directory " + dirPath;
try {
- System.out.println("before exec");
Process process = Runtime.getRuntime().exec(extractCommand);
- System.out.println("after exec");
} catch (IOException e) {
e.printStackTrace();
}
} else {
System.out.println("tarFile == null");
- // How can I get the repo_url, commit_id and branch?
- // String gitCloneCommand = "git clone " + tarFile.getPath() + " --directory " + dirPath;
+ if (commits.size() > 0) {
+ String repoUrl = commits.get(0).getRepoUrl();
+ String gitCloneCommand = "git clone " + repoUrl; // + " --directory" + gitDir
+ try {
+ System.out.println("before exec git clone");
+ Runtime.getRuntime().exec(gitCloneCommand);
+ System.out.println("after exec git clone");
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ } else {
+ System.out.println("PROBLEM: NO COMMITS");
+ }
+ for (Commit commit : commits) {
+ String commitId = commit.getCommitId();
+ // commit diff
+ }
// for F in $(git -C $repo_dir diff --name-only $commit_id^..$commit_id)
}
}
diff --git a/kb-importer/src/main/java/org/eclipse/steady/kb/model/Vulnerability.java b/kb-importer/src/main/java/org/eclipse/steady/kb/model/Vulnerability.java
index a7fe81567..fb6f919cf 100755
--- a/kb-importer/src/main/java/org/eclipse/steady/kb/model/Vulnerability.java
+++ b/kb-importer/src/main/java/org/eclipse/steady/kb/model/Vulnerability.java
@@ -34,6 +34,8 @@ public class Vulnerability {
private List notes;
private List aliases;
+ private List commits;
+
/**
* Getter for the field vulnId
.
*
@@ -105,4 +107,12 @@ public List getAliases() {
public void setAliases(List aliases) {
this.aliases = aliases;
}
+
+ public List getCommits() {
+ return commits
+ }
+
+ public void setCommits(List commits) {
+ this.commits = commits;
+ }
}
diff --git a/kb-importer/src/main/java/org/eclipse/steady/kb/util/Metadata.java b/kb-importer/src/main/java/org/eclipse/steady/kb/util/Metadata.java
index 2b4f56483..0192d4373 100755
--- a/kb-importer/src/main/java/org/eclipse/steady/kb/util/Metadata.java
+++ b/kb-importer/src/main/java/org/eclipse/steady/kb/util/Metadata.java
@@ -112,7 +112,6 @@ public static Vulnerability getFromYaml(String metadataPathString) throws IOExce
Path metadataPath = Paths.get(metadataPathString);
Yaml yaml = new Yaml();
-
// String metadataString = File.readString(dirPath + "/metadata.yaml");
String metadataString = new String(Files.readAllBytes(metadataPath));
@@ -126,29 +125,58 @@ public static Vulnerability getFromYaml(String metadataPathString) throws IOExce
vulnerability.setVulnId((String) vulnerabilityMap.get("vulnerability_id"));
- List> notesMaps =
- (List>) vulnerabilityMap.get("notes");
- List notes = new ArrayList();
- for (HashMap noteMap : notesMaps) {
- Note note = new Note();
- note.setText((String) noteMap.get("text"));
- List links = (List) noteMap.get("links");
- note.setLinks(links);
- notes.add(note);
+ if (vulnerabilityMap.containsKey("notes")) {
+ List> notesMaps =
+ (List>) vulnerabilityMap.get("notes");
+ List notes = new ArrayList();
+ for (HashMap noteMap : notesMaps) {
+ Note note = new Note();
+ note.setText((String) noteMap.get("text"));
+ List links = (List) noteMap.get("links");
+ note.setLinks(links);
+ notes.add(note);
+ }
+ vulnerability.setNotes(notes);
+ }
+
+ if (vulnerabilityMap.containsKey("artifacts")) {
+ List> artifactsMaps =
+ (List>) vulnerabilityMap.get("artifacts");
+ List artifacts = new ArrayList();
+ for (HashMap artifactMap : artifactsMaps) {
+ Artifact artifact = new Artifact();
+ artifact.setId((String) artifactMap.get("id"));
+ artifact.setReason((String) artifactMap.get("reason"));
+ artifact.setAffected((Boolean) artifactMap.get("affected"));
+ artifacts.add(artifact);
+ }
+ vulnerability.setArtifacts(artifacts);
}
- vulnerability.setNotes(notes);
-
- List> artifactsMaps =
- (List>) vulnerabilityMap.get("artifacts");
- List artifacts = new ArrayList();
- for (HashMap artifactMap : artifactsMaps) {
- Artifact artifact = new Artifact();
- artifact.setId((String) artifactMap.get("id"));
- artifact.setReason((String)artifactMap.get("reason"));
- artifact.setAffected((Boolean)artifactMap.get("affected"));
- artifacts.add(artifact);
+
+ if (vulnerabilityMap.containsKey("aliases")) {
+ List aliases = (List) vulnerabilityMap.get("aliases");
+ vulnerability.setAliases(aliases);
+ }
+
+ List> fixes =
+ (List>) vulnerabilityMap.get("fixes");
+ List commitList = new ArrayList();
+ if (fixes != null) {
+ for (HashMap fix : fixes) {
+ String branch = (String) fix.get("id");
+ List> commits = (List>) fix.get("commits");
+ for (HashMap commitMap : commits) {
+ Commit commit = new Commit();
+ String repository = commitMap.get("repository");
+ String commitId = commitMap.get("id");
+ commit.setRepoUrl(repository);
+ commit.setCommitId(commitId);
+ commit.setBranch(branch);
+ commitList.add(commit);
+ }
+ }
+ vulnerability.setCommits(commitList);
}
- vulnerability.setArtifacts(artifacts);
return vulnerability;
}
From 8e8c75134b16c3a82b780036d24b39882a80ba15 Mon Sep 17 00:00:00 2001
From: Pedro GALVAO
Date: Fri, 22 Apr 2022 16:39:40 +0200
Subject: [PATCH 12/83] Extracting and cloning in parallel, but without locks
---
java-files.txt | 1 +
.../java/org/eclipse/steady/kb/Import.java | 180 +++++++++-------
.../main/java/org/eclipse/steady/kb/Main.java | 9 +-
.../java/org/eclipse/steady/kb/Manager.java | 143 ++++++++----
.../org/eclipse/steady/kb/command/Import.java | 5 +-
.../steady/kb/model/Vulnerability.java | 2 +-
.../steady/kb/task/ExtractOrClone.java | 203 ++++++++++++++++++
.../org/eclipse/steady/kb/util/Metadata.java | 12 ++
8 files changed, 427 insertions(+), 128 deletions(-)
create mode 100644 kb-importer/src/main/java/org/eclipse/steady/kb/task/ExtractOrClone.java
diff --git a/java-files.txt b/java-files.txt
index 23a78b27a..f95412382 100644
--- a/java-files.txt
+++ b/java-files.txt
@@ -307,6 +307,7 @@ kb-importer/src/main/java/org/eclipse/steady/kb/util/ConstructSet.java
kb-importer/src/main/java/org/eclipse/steady/kb/Manager.java
kb-importer/src/main/java/org/eclipse/steady/kb/task/ImportAffectedLibraries.java
kb-importer/src/main/java/org/eclipse/steady/kb/task/ImportVulnerability.java
+kb-importer/src/main/java/org/eclipse/steady/kb/task/ExtractOrClone.java
kb-importer/src/main/java/org/eclipse/steady/kb/task/TaskProvider.java
kb-importer/src/main/java/org/eclipse/steady/kb/task/Task.java
kb-importer/src/main/java/org/eclipse/steady/kb/exception/CommandLineParserException.java
diff --git a/kb-importer/src/main/java/org/eclipse/steady/kb/Import.java b/kb-importer/src/main/java/org/eclipse/steady/kb/Import.java
index a46bb391e..39f164434 100644
--- a/kb-importer/src/main/java/org/eclipse/steady/kb/Import.java
+++ b/kb-importer/src/main/java/org/eclipse/steady/kb/Import.java
@@ -1,91 +1,119 @@
+package org.eclipse.steady.kb;
+import java.util.HashMap;
+import java.io.IOException;
+import java.io.File;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import org.apache.logging.log4j.Logger;
-class Import implements Runnable {
+import org.eclipse.steady.shared.util.FileUtil;
+import org.eclipse.steady.backend.BackendConnector;
+import org.eclipse.steady.kb.task.ExtractOrClone;
+import org.eclipse.steady.kb.util.Metadata;
+import org.eclipse.steady.kb.model.Vulnerability;
+import org.eclipse.steady.backend.BackendConnectionException;
- private static final SOURCE_TAR = "changed-source-code.tar.gz"
- private static final STATEMENT_YAML = "statement.yaml"
-
- private static final Logger log = org.apache.logging.log4j.LogManager.getLogger();
-
- private BackendConnector backendConnector;
-
- public Import(Path vulnDir) {
- this.vulnDir = vulnDir;
- }
-
- @Override
- public void run() {
+public class Import implements Runnable {
- /* How to pass the argumens?
- set configuration in the manager instead?
- Object uploadConstruct = args.get(UPLOAD_CONSTRUCT_OPTION);
- VulasConfiguration.getGlobal()
- .setProperty(
- CoreConfiguration.BACKEND_CONNECT,
- (uploadConstruct != null
- ? CoreConfiguration.ConnectType.READ_WRITE.toString()
- : CoreConfiguration.ConnectType.READ_ONLY.toString()));*/
+ public static final String METADATA_JSON = "metadata.json";
+ public static final String STATEMENT_YAML = "statement.yaml";
+ public static final String SOURCE_TAR = "changed-source-code.tar.gz";
- Boolean overwrite = (Boolean) args.get(OVERWRITE_OPTION);
- if (bugExists) {
- if (overwrite) {
- args.put(DELETE, true);
- } else {
- log.info("Bug [{}] already exists in backend, analysis will be skipped", vulnId);
- return;
- }
- }
- Path statementPath = findStatementPath();
- if (statementPath != null) {
- Vulnerability vuln = Metadata.getFromYaml(statementPath);
+ public static final String UPLOAD_CONSTRUCT_OPTION = "u";
+ public static final String OVERWRITE_OPTION = "o";
+ public static final String DELETE_OPTION = "del";
+ public static final String DIRECTORY_OPTION = "d";
+ public static final String DELETE = "del";
- ExtractOrClone extractOrClone = new ExtractOrClone(this.vulnDir, args);
- ImportVulnerability importVulnerability = new ImportVulnerability(vuln, args);
- ImportAffectedLibraries importAffectedLibraries = new ImportAffectedLibraries(vuln, args);
+ private static final Logger log = org.apache.logging.log4j.LogManager.getLogger();
+ private Path vulnDir;
+ private String vulnId;
+ private BackendConnector backendConnector;
+ private HashMap args;
- extractOrClone.execute();
- importVulnerability.execute();
- importAffectedLibraries.execute();
- }
+ public Import(HashMap args) {
+ this.backendConnector = BackendConnector.getInstance();
+ this.vulnDir = Paths.get((String) args.get(DIRECTORY_OPTION));
+ this.vulnId = vulnDir.getFileName().toString();
+ this.args = args;
+ }
+ public String getVulnId() {
+ return this.vulnId;
+ }
+ @Override
+ public void run() {
+ boolean bugExists = false;
+ try {
+ // System.out.println("before isBugExisting");
+ bugExists = this.backendConnector.isBugExisting(vulnId);
+ // System.out.println("after isBugExisting");
+ } catch (BackendConnectionException e) {
+ log.error("Can't connect to the Backend");
+ return;
}
+ Boolean overwrite = (Boolean) args.get(OVERWRITE_OPTION);
+ if (bugExists) {
+ if (overwrite) {
+ args.put(DELETE, true);
+ } else {
+ System.out.println("bugExists no Overwrite");
+ log.info("Bug [{}] already exists in backend, analysis will be skipped", vulnId);
+ return;
+ }
+ }
+ String statementPath = findStatementPath();
+ System.out.println("statementPath");
+ System.out.println(statementPath);
+ if (statementPath != null) {
+ Vulnerability vuln;
+ try {
+ vuln = Metadata.getFromYaml(statementPath);
+ } catch (IOException e) {
+ log.error("Error while reading Yaml file for [{}]", vulnId);
+ return;
+ }
+ // ImportVulnerability importVulnerability = new ImportVulnerability(vuln, args);
+ // ImportAffectedLibraries importAffectedLibraries = new ImportAffectedLibraries(vuln, args);
- public Path findTarPath() {
- if (FileUtil.isAccessibleFile(vulnDir + File.separator + SOURCE_TAR)) {
- return vulnDir + File.separator + SOURCE_TAR;
- }
- }
+ ExtractOrClone extractOrClone = new ExtractOrClone();
+ extractOrClone.execute(new File(this.vulnDir.toString()), vuln);
+ // importVulnerability.execute();
+ // importAffectedLibraries.execute();
+ }
+ }
- public Path findStatementPath() {
- // TODO: Should also check for metadata.json?
- // Review this function
- if (FileUtil.isAccessibleFile(vulnDir + File.separator + STATEMENT_YAML)) {
- return vulnDir + File.separator + STATEMENT_YAML;
- }
- /* Since there is one Import task per vulnerability, there is no need to loop over subdirectories
- else if (FileUtil.isAccessibleDirectory(vulnDir)) {
- File directory = new File(vulnDir);
- File[] fList = directory.listFiles();
- if (fList != null) {
- for (File file : fList) {
- if (file.isDirectory()) {
- if (FileUtil.isAccessibleFile(
- file.getAbsolutePath() + File.separator + STATEMENT_YAML)) {
- return file.getAbsolutePath() + File.separator + STATEMENT_YAML;
- } else {
- Import.log.warn(
- "Skipping {} as the directory does not contain statement.yaml"
- + " file",
- file.getAbsolutePath());
- }
- }
- }
+ public String findStatementPath() {
+ // TODO: Should also check for metadata.json?
+ // Review this function
+ if (FileUtil.isAccessibleFile(vulnDir + File.separator + STATEMENT_YAML)) {
+ return vulnDir + File.separator + STATEMENT_YAML;
+ }
+ // Since there is one Import task per vulnerability, there is no need to loop over
+ // subdirectories
+ else if (FileUtil.isAccessibleDirectory(vulnDir)) {
+ File directory = new File(vulnDir.toString());
+ File[] fList = directory.listFiles();
+ if (fList != null) {
+ for (File file : fList) {
+ if (file.isDirectory()) {
+ if (FileUtil.isAccessibleFile(
+ file.getAbsolutePath() + File.separator + STATEMENT_YAML)) {
+ return file.getAbsolutePath() + File.separator + STATEMENT_YAML;
+ } else {
+ Import.log.warn(
+ "Skipping {} as the directory does not contain statement.yaml" + " file",
+ file.getAbsolutePath());
}
- }*/
- else {
- Import.log.error("Invalid directory {}", vulnDir);
+ }
}
- return null;
+ }
+ } else {
+ System.out.println("statement not found");
+ Import.log.error("Invalid directory {}", vulnDir);
}
-}
\ No newline at end of file
+ return null;
+ }
+}
diff --git a/kb-importer/src/main/java/org/eclipse/steady/kb/Main.java b/kb-importer/src/main/java/org/eclipse/steady/kb/Main.java
index 9164de6e7..f88830d7c 100755
--- a/kb-importer/src/main/java/org/eclipse/steady/kb/Main.java
+++ b/kb-importer/src/main/java/org/eclipse/steady/kb/Main.java
@@ -19,12 +19,6 @@
package org.eclipse.steady.kb;
import java.util.HashMap;
-import org.apache.commons.cli.Options;
-
-import org.eclipse.steady.kb.command.Import;
-import org.eclipse.steady.kb.command.Command;
-import org.eclipse.steady.kb.command.CommandParser;
-import org.eclipse.steady.kb.exception.CommandLineParserException;
/**
* Main class.
@@ -36,7 +30,8 @@ public class Main {
* @param _args an array of {@link java.lang.String} objects
*/
public static void main(String[] _args) {
- command.run(mapCommandOptionValues);
+ // command.run(mapCommandOptionValues);
+ HashMap mapCommandOptionValues = new HashMap();
Manager manager = new Manager();
manager.start("/kb-importer/data/statements", mapCommandOptionValues);
}
diff --git a/kb-importer/src/main/java/org/eclipse/steady/kb/Manager.java b/kb-importer/src/main/java/org/eclipse/steady/kb/Manager.java
index 86331a82e..8cd3e739b 100644
--- a/kb-importer/src/main/java/org/eclipse/steady/kb/Manager.java
+++ b/kb-importer/src/main/java/org/eclipse/steady/kb/Manager.java
@@ -2,62 +2,121 @@
import java.util.Map;
import java.util.HashMap;
+import java.util.concurrent.ThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.BlockingQueue;
+import java.util.concurrent.LinkedBlockingQueue;
+
import java.io.File;
-import org.eclipse.steady.kb.Import;
-import org.eclipse.steady.kb.command.Command;
+import org.eclipse.steady.shared.util.VulasConfiguration;
+import org.eclipse.steady.core.util.CoreConfiguration;
-class Manager {
+public class Manager {
- private ThreadPoolExecutor executor =
- (ThreadPoolExecutor) Executors.newCachedThreadPool();
-
- enum VulnStatus {
- NOT_STARTED,
- PROCESSING,
- IMPORTED,
- FAILED
+ class MyThreadExecutor extends ThreadPoolExecutor {
+ public MyThreadExecutor(
+ int PoolSize,
+ int maxPoolSize,
+ long keepAliveTime,
+ TimeUnit unit,
+ BlockingQueue workQueue) {
+ super(PoolSize, maxPoolSize, keepAliveTime, unit, workQueue);
}
-
- private Map vulnerabilitiesStatus = new HashMap();
- public void start(String statementsPath,
- HashMap mapCommandOptionValues) {
+ @Override
+ protected void afterExecute(Runnable run, Throwable throw1) {
- File statementsDir = new File(statementsPath);
- File[] subdirs = statementsDir.listFiles();
+ super.afterExecute(run, throw1);
- setUploadConfiguration(mapCommandOptionValues);
+ // String vulnId = ((Import)run).getVulnId();
+ // System.out.println("afterExecute()3");
+ // System.out.println(vulnId);
- for (File dir : subdirs) {
- if (dir.isDirectory(){
- vulnerabilitiesStatus.put(dir.getName(), VulnStatus.NOT_STARTED);
- }
- }
- for (File dir : vulnerabilitiesStatus.keySet()){
- //synchronized (vulnerabilitiesStatus.get(dir.getName())) {
- String dirPath = dir.getPath();
- mapCommandOptionValues.put(Import.DIRECTORY_OPTION, dirPath);
- Import import = new Import(mapCommandOptionValues);
- executor.execute(import);
- //}
- }
+ if (throw1 == null) {
+ // Manager.addStatus(vulnId, VulnStatus.IMPORTED);
+ Manager.addStatus();
+ } else {
+ System.out.println("encountered exception- " + throw1.getMessage());
+ // Manager.addStatus(vulnId, VulnStatus.FAILED);
+ }
}
+ }
+
+ private static int imported = 0;
+
+ public static void addStatus() { // String vulnId, VulnStatus vulnStatus) {
+ imported += 1;
+ // System.out.println("addStatus()");
+ // System.out.println(vulnId);
+ // vulnerabilitiesStatus.put(vulnId, vulnStatus);
+ // System.out.println("addStatus()2");
+ }
+
+ private MyThreadExecutor executor =
+ new MyThreadExecutor(16, 32, 60, TimeUnit.SECONDS, new LinkedBlockingQueue<>());
+ // (ThreadPoolExecutor) Executors.newCachedThreadPool();
+ // this.pool = Executors.newFixedThreadPool(_pool_size);
+
+ enum VulnStatus {
+ NOT_STARTED,
+ PROCESSING,
+ IMPORTED,
+ FAILED
+ }
- private void setUploadConfiguration() {
+ private static Map vulnerabilitiesStatus = new HashMap();
- Object uploadConstruct = args.get(UPLOAD_CONSTRUCT_OPTION);
- VulasConfiguration.getGlobal()
- .setProperty(
- CoreConfiguration.BACKEND_CONNECT,
- (uploadConstruct != null
- ? CoreConfiguration.ConnectType.READ_WRITE.toString()
- : CoreConfiguration.ConnectType.READ_ONLY.toString()));
+ public synchronized void start(
+ String statementsPath, HashMap mapCommandOptionValues) {
+
+ File statementsDir = new File(statementsPath);
+ File[] subdirs = statementsDir.listFiles();
+
+ mapCommandOptionValues.put(Import.OVERWRITE_OPTION, true); // Change this
+ setUploadConfiguration(mapCommandOptionValues);
+
+ for (File dir : subdirs) {
+ String dirPath = dir.getPath();
+ mapCommandOptionValues.put(Import.DIRECTORY_OPTION, dirPath);
+ Import command = new Import(mapCommandOptionValues);
+ executor.submit(command);
+ }
+ for (int i = 0; i < 10; i++) {
+ try {
+ Thread.sleep(10000);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ System.out.println("Interrupted");
+ }
+ System.out.println(status());
}
+ }
- /*public String status() {
- return "";
- }*/
+ private void setUploadConfiguration(HashMap args) {
+ Object uploadConstruct = args.get(Import.UPLOAD_CONSTRUCT_OPTION);
+ VulasConfiguration.getGlobal()
+ .setProperty(
+ CoreConfiguration.BACKEND_CONNECT,
+ (uploadConstruct != null
+ ? CoreConfiguration.ConnectType.READ_WRITE.toString()
+ : CoreConfiguration.ConnectType.READ_ONLY.toString()));
+ }
+
+ public String status() {
+ /*int imported = 0;
+ int others = 0;
+ for (VulnStatus vulnStatus : new ArrayList(vulnerabilitiesStatus.values())) {
+ if (vulnStatus == VulnStatus.IMPORTED) {
+ imported += 1;
+ }
+ else {
+ others += 1;
+ }
+ }*/
+ return "imported = "
+ + Integer.toString(imported); // + "\nothers = " + Integer.toString(others);
+ }
}
diff --git a/kb-importer/src/main/java/org/eclipse/steady/kb/command/Import.java b/kb-importer/src/main/java/org/eclipse/steady/kb/command/Import.java
index a0ed2523a..a9c63a4fe 100755
--- a/kb-importer/src/main/java/org/eclipse/steady/kb/command/Import.java
+++ b/kb-importer/src/main/java/org/eclipse/steady/kb/command/Import.java
@@ -50,8 +50,9 @@
*/
public class Import implements Command {
- private static final String METADATA_JSON = "metadata.json";
- private static final String STATEMENT_YAML = "statement.yaml";
+ public static final String METADATA_JSON = "metadata.json";
+ public static final String STATEMENT_YAML = "statement.yaml";
+
public static final String UPLOAD_CONSTRUCT_OPTION = "u";
public static final String DIRECTORY_OPTION = "d";
public static final String OVERWRITE_OPTION = "o";
diff --git a/kb-importer/src/main/java/org/eclipse/steady/kb/model/Vulnerability.java b/kb-importer/src/main/java/org/eclipse/steady/kb/model/Vulnerability.java
index fb6f919cf..bb64a8288 100755
--- a/kb-importer/src/main/java/org/eclipse/steady/kb/model/Vulnerability.java
+++ b/kb-importer/src/main/java/org/eclipse/steady/kb/model/Vulnerability.java
@@ -109,7 +109,7 @@ public void setAliases(List aliases) {
}
public List getCommits() {
- return commits
+ return commits;
}
public void setCommits(List commits) {
diff --git a/kb-importer/src/main/java/org/eclipse/steady/kb/task/ExtractOrClone.java b/kb-importer/src/main/java/org/eclipse/steady/kb/task/ExtractOrClone.java
new file mode 100644
index 000000000..d0780dede
--- /dev/null
+++ b/kb-importer/src/main/java/org/eclipse/steady/kb/task/ExtractOrClone.java
@@ -0,0 +1,203 @@
+package org.eclipse.steady.kb.task;
+
+import java.io.IOException;
+import java.io.File;
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.util.List;
+import java.util.HashMap;
+
+import org.eclipse.steady.shared.util.FileUtil;
+import org.eclipse.steady.kb.model.Vulnerability;
+import org.eclipse.steady.kb.model.Commit;
+import org.eclipse.steady.kb.Import;
+import org.eclipse.steady.kb.util.Metadata;
+
+public class ExtractOrClone {
+
+ private static final String GIT_DIRECTORY = "git-repos";
+
+ public void execute(File dir, Vulnerability vuln) {
+ String dirPath = dir.getPath();
+ File tarFile = getTarFile(dirPath);
+
+ if (tarFile != null) {
+ extract(tarFile, dirPath);
+ } else {
+ clone(vuln, dirPath);
+ }
+ System.out.println("ExtractOrClone : done (" + dirPath + ")");
+ }
+
+ public File getTarFile(String dirPath) {
+ if (FileUtil.isAccessibleFile(dirPath + File.separator + Import.SOURCE_TAR)) {
+ return new File(dirPath + File.separator + Import.SOURCE_TAR);
+ } else return null;
+ /*
+ File tarFile = null;
+ File[] cveFiles = dir.listFiles();
+ for (File cveFile : cveFiles) {
+ String filename = cveFile.getName();
+ String[] splitted = filename.split("[.]");
+ if (splitted.length == 0) {
+ continue;
+ }
+ String extension = splitted[splitted.length - 1];
+ if (extension.equals("tar")
+ || (splitted.length > 2 && splitted[splitted.length - 2].equals("tar"))) {
+ tarFile = cveFile;
+ break;
+ }
+ }
+ return tarFile;*/
+ }
+
+ public void extract(File tarFile, String dirPath) {
+ String extractCommand = "tar -xf " + tarFile.getPath() + " --directory " + dirPath;
+ try {
+ Process process = Runtime.getRuntime().exec(extractCommand);
+ process.waitFor();
+ } catch (IOException | InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ public void clone(Vulnerability vuln, String dirPath) {
+ List commits = vuln.getCommits();
+ if (commits.size() == 0) {
+ System.out.println("NO COMMITS");
+ return;
+ }
+ for (Commit commit : commits) {
+ // TODO : lock the repo from this point
+ // can the bugs have multiple repositories?
+ String repoUrl = commit.getRepoUrl();
+ String commitId = commit.getCommitId();
+ String commitDirPath = dirPath + File.separator + commitId;
+ System.out.println("commitDirPath : " + commitDirPath);
+ File commitDir = new File(commitDirPath);
+ String repoDirPath =
+ GIT_DIRECTORY + File.separator + repoUrl.split("/")[repoUrl.split("/").length - 1];
+ try {
+ cloneOnce(repoUrl, repoDirPath);
+ createAndWriteCommitMetadata(commit, repoDirPath, commitDirPath);
+ writeCommitDiff(commitId, repoDirPath, commitDirPath);
+ } catch (IOException e) {
+ e.printStackTrace();
+ continue;
+ }
+ }
+ }
+
+ public void createAndWriteCommitMetadata(Commit commit, String repoDirPath, String commitDirPath)
+ throws IOException {
+
+ String commitId = commit.getCommitId();
+ String commitMetadataPath = commitDirPath + File.separator + Import.METADATA_JSON;
+ File commitMetadataFile = new File(commitDirPath);
+ // if (!Files.exists(commitMetadataPath)) {
+ HashMap commitMetadata = new HashMap();
+ String gitShowCommand =
+ "git -C " + repoDirPath + " show --no-patch --no-notes --pretty='%at' " + commitId;
+ Process gitShow =
+ Runtime.getRuntime()
+ .exec(gitShowCommand); // have problems probably caused by parallelization
+
+ BufferedReader gitShowStdInput =
+ new BufferedReader(new InputStreamReader(gitShow.getInputStream()));
+ BufferedReader gitShowError =
+ new BufferedReader(new InputStreamReader(gitShow.getErrorStream()));
+ String timestamp;
+ if ((timestamp = gitShowStdInput.readLine()) == null) {
+ System.out.println("NULL 1");
+ }
+ System.out.println("timestamp1");
+ System.out.println(timestamp);
+ if (timestamp == null) {
+ System.out.println("NULL!!!");
+ }
+ String error = gitShowError.readLine();
+ System.out.println("git show Error: " + error);
+ /*
+ while ((timestamp = gitShowStdInput.readLine()) == null) {
+ System.out.println("timestamp : "+timestamp);
+ }*/
+ System.out.println("timestamp : " + timestamp);
+
+ commitMetadata.put("repository", commit.getRepoUrl());
+ commitMetadata.put("branch", commit.getBranch());
+ commitMetadata.put("timestamp", timestamp);
+ commitMetadata.put("commit_id", commitId);
+
+ Metadata.writeCommitMetadata(commitDirPath, commitMetadata);
+ }
+
+ public void cloneOnce(String repoUrl, String repoDirPath) {
+ String gitCloneCommand = "git clone " + repoUrl + " " + repoDirPath;
+ File repoDir = new File(repoDirPath);
+ if (Files.exists(Paths.get(repoDirPath))) {
+ System.out.println("Folder " + repoDirPath + " exists. Skipping git clone.");
+ } else {
+ try {
+ Process gitClone = Runtime.getRuntime().exec(gitCloneCommand);
+ gitClone.waitFor();
+ } catch (IOException | InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+ public void writeCommitDiff(String commitId, String repoDirPath, String commitDirPath)
+ throws IOException {
+ String gitDiffCommand =
+ "git -C " + repoDirPath + " diff --name-only " + commitId + "^.." + commitId;
+ Process gitDiff = Runtime.getRuntime().exec(gitDiffCommand);
+ BufferedReader gitDiffStdInput =
+ new BufferedReader(new InputStreamReader(gitDiff.getInputStream()));
+ String filename;
+ while ((filename = gitDiffStdInput.readLine()) != null) {
+ // for each file modified in the commit...
+ String gitCatBeforeCommand =
+ "git -C " + repoDirPath + " cat-file -e " + commitId + "~1:" + filename + " &> /dev/null";
+ Process gitCatBefore = Runtime.getRuntime().exec(gitCatBeforeCommand);
+ if (gitCatBefore.exitValue() == 0) {
+ // git -C $repo_dir show $commit_id~1:$F > $vulnerability_id/$commit_id/before/$F
+ String diffFileCommand =
+ "git -C "
+ + repoDirPath
+ + " show "
+ + commitId
+ + "~1:"
+ + filename
+ + " > "
+ + commitDirPath
+ + File.separator
+ + "before"
+ + File.separator
+ + filename;
+ }
+
+ String gitCatAfterCommand =
+ "git -C " + repoDirPath + " cat-file -e " + commitId + ":" + filename + " &> /dev/null";
+ Process gitCatAfter = Runtime.getRuntime().exec(gitCatBeforeCommand);
+ if (gitCatAfter.exitValue() == 0) {
+ // git -C $repo_dir show $commit_id:$F > $vulnerability_id/$commit_id/after/$F
+ String diffFileCommand =
+ "git -C "
+ + repoDirPath
+ + " show "
+ + commitId
+ + ":"
+ + filename
+ + " > "
+ + commitDirPath
+ + File.separator
+ + "after"
+ + File.separator
+ + filename;
+ }
+ }
+ }
+}
diff --git a/kb-importer/src/main/java/org/eclipse/steady/kb/util/Metadata.java b/kb-importer/src/main/java/org/eclipse/steady/kb/util/Metadata.java
index 0192d4373..b58e75dfd 100755
--- a/kb-importer/src/main/java/org/eclipse/steady/kb/util/Metadata.java
+++ b/kb-importer/src/main/java/org/eclipse/steady/kb/util/Metadata.java
@@ -20,6 +20,8 @@
import java.io.File;
import java.io.IOException;
+import java.io.Writer;
+import java.io.FileWriter;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.Files;
@@ -76,6 +78,16 @@ public static Commit getCommitMetadata(String commitDir) throws JsonSyntaxExcept
return metadata;
}
+ public static void writeCommitMetadata(String commitDir, HashMap commitMetadata)
+ throws IOException {
+ String filePath = commitDir + File.separator + META_PROPERTIES_FILE;
+ // File file = new File(filePath);
+ // file.createNewFile();
+ Writer writer = new FileWriter(filePath, false);
+ new Gson().toJson(commitMetadata, writer);
+ writer.close();
+ }
+
/**
* read vulnerability information from meta file
*
From 0e79f9542f3aae16bded1004a92affde8e274dd4 Mon Sep 17 00:00:00 2001
From: Pedro
Date: Mon, 25 Apr 2022 12:31:41 +0200
Subject: [PATCH 13/83] repositories locks
---
.../java/org/eclipse/steady/kb/Import.java | 7 +-
.../java/org/eclipse/steady/kb/Manager.java | 78 +++++++++----------
.../steady/kb/task/ExtractOrClone.java | 14 +++-
3 files changed, 55 insertions(+), 44 deletions(-)
diff --git a/kb-importer/src/main/java/org/eclipse/steady/kb/Import.java b/kb-importer/src/main/java/org/eclipse/steady/kb/Import.java
index 39f164434..f6b2b1a75 100644
--- a/kb-importer/src/main/java/org/eclipse/steady/kb/Import.java
+++ b/kb-importer/src/main/java/org/eclipse/steady/kb/Import.java
@@ -13,6 +13,7 @@
import org.eclipse.steady.kb.util.Metadata;
import org.eclipse.steady.kb.model.Vulnerability;
import org.eclipse.steady.backend.BackendConnectionException;
+import org.eclipse.steady.kb.Manager;
public class Import implements Runnable {
@@ -31,8 +32,10 @@ public class Import implements Runnable {
private String vulnId;
private BackendConnector backendConnector;
private HashMap args;
+ Manager manager;
- public Import(HashMap args) {
+ public Import(Manager manager, HashMap args) {
+ this.manager = manager;
this.backendConnector = BackendConnector.getInstance();
this.vulnDir = Paths.get((String) args.get(DIRECTORY_OPTION));
this.vulnId = vulnDir.getFileName().toString();
@@ -78,7 +81,7 @@ public void run() {
// ImportVulnerability importVulnerability = new ImportVulnerability(vuln, args);
// ImportAffectedLibraries importAffectedLibraries = new ImportAffectedLibraries(vuln, args);
- ExtractOrClone extractOrClone = new ExtractOrClone();
+ ExtractOrClone extractOrClone = new ExtractOrClone(this.manager);
extractOrClone.execute(new File(this.vulnDir.toString()), vuln);
// importVulnerability.execute();
// importAffectedLibraries.execute();
diff --git a/kb-importer/src/main/java/org/eclipse/steady/kb/Manager.java b/kb-importer/src/main/java/org/eclipse/steady/kb/Manager.java
index 8cd3e739b..0aff3bf2e 100644
--- a/kb-importer/src/main/java/org/eclipse/steady/kb/Manager.java
+++ b/kb-importer/src/main/java/org/eclipse/steady/kb/Manager.java
@@ -6,7 +6,10 @@
import java.util.concurrent.TimeUnit;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.Executors;
+import java.util.concurrent.locks.Lock;
+import java.util.concurrent.locks.ReentrantLock;
import java.io.File;
@@ -15,49 +18,20 @@
public class Manager {
- class MyThreadExecutor extends ThreadPoolExecutor {
- public MyThreadExecutor(
- int PoolSize,
- int maxPoolSize,
- long keepAliveTime,
- TimeUnit unit,
- BlockingQueue workQueue) {
- super(PoolSize, maxPoolSize, keepAliveTime, unit, workQueue);
- }
-
- @Override
- protected void afterExecute(Runnable run, Throwable throw1) {
-
- super.afterExecute(run, throw1);
-
- // String vulnId = ((Import)run).getVulnId();
- // System.out.println("afterExecute()3");
- // System.out.println(vulnId);
-
- if (throw1 == null) {
- // Manager.addStatus(vulnId, VulnStatus.IMPORTED);
- Manager.addStatus();
- } else {
- System.out.println("encountered exception- " + throw1.getMessage());
- // Manager.addStatus(vulnId, VulnStatus.FAILED);
- }
- }
- }
-
private static int imported = 0;
- public static void addStatus() { // String vulnId, VulnStatus vulnStatus) {
+ public static void addStatus(String vulnId, VulnStatus vulnStatus) {
imported += 1;
- // System.out.println("addStatus()");
- // System.out.println(vulnId);
- // vulnerabilitiesStatus.put(vulnId, vulnStatus);
- // System.out.println("addStatus()2");
+ System.out.println("addStatus()");
+ System.out.println(vulnId);
+ vulnerabilitiesStatus.put(vulnId, vulnStatus);
+ System.out.println("addStatus()2");
}
- private MyThreadExecutor executor =
- new MyThreadExecutor(16, 32, 60, TimeUnit.SECONDS, new LinkedBlockingQueue<>());
- // (ThreadPoolExecutor) Executors.newCachedThreadPool();
- // this.pool = Executors.newFixedThreadPool(_pool_size);
+ private ThreadPoolExecutor executor =
+ //new MyThreadExecutor(16, 32, 60, TimeUnit.SECONDS, new LinkedBlockingQueue<>());
+ //(ThreadPoolExecutor) Executors.newCachedThreadPool();
+ (ThreadPoolExecutor) Executors.newFixedThreadPool(8);
enum VulnStatus {
NOT_STARTED,
@@ -67,6 +41,32 @@ enum VulnStatus {
}
private static Map vulnerabilitiesStatus = new HashMap();
+ // synchronized Map reposInProcess = new HashMap();
+ Map repoLocks = new HashMap();
+
+
+ //private synchronized Set vulnDone;
+
+ /*public synchronized boolean isRepoInProcess(String repo) {
+ return reposInProcess.get(repo);
+ }*/
+
+ public void start(String repo) {
+ // reposInProcess.put(repo, true);
+ if (!repoLocks.containsKey(repo)){
+ repoLocks.put(repo, new ReentrantLock());
+ }
+ repoLocks.get(repo).lock();
+ }
+
+ public void complete(String repo) {
+ if (!repoLocks.containsKey(repo)) {
+ System.out.println("ERROR : Lock not found");
+ return;
+ }
+ repoLocks.get(repo).unlock();
+ }
+ //HashMap all_vulns =
public synchronized void start(
String statementsPath, HashMap mapCommandOptionValues) {
@@ -80,7 +80,7 @@ public synchronized void start(
for (File dir : subdirs) {
String dirPath = dir.getPath();
mapCommandOptionValues.put(Import.DIRECTORY_OPTION, dirPath);
- Import command = new Import(mapCommandOptionValues);
+ Import command = new Import(this, mapCommandOptionValues);
executor.submit(command);
}
for (int i = 0; i < 10; i++) {
diff --git a/kb-importer/src/main/java/org/eclipse/steady/kb/task/ExtractOrClone.java b/kb-importer/src/main/java/org/eclipse/steady/kb/task/ExtractOrClone.java
index d0780dede..3156ecd4c 100644
--- a/kb-importer/src/main/java/org/eclipse/steady/kb/task/ExtractOrClone.java
+++ b/kb-importer/src/main/java/org/eclipse/steady/kb/task/ExtractOrClone.java
@@ -14,10 +14,16 @@
import org.eclipse.steady.kb.model.Commit;
import org.eclipse.steady.kb.Import;
import org.eclipse.steady.kb.util.Metadata;
+import org.eclipse.steady.kb.Manager;
public class ExtractOrClone {
private static final String GIT_DIRECTORY = "git-repos";
+ private final Manager manager;
+
+ public ExtractOrClone(Manager manager){
+ this.manager = manager;
+ }
public void execute(File dir, Vulnerability vuln) {
String dirPath = dir.getPath();
@@ -81,9 +87,11 @@ public void clone(Vulnerability vuln, String dirPath) {
String repoDirPath =
GIT_DIRECTORY + File.separator + repoUrl.split("/")[repoUrl.split("/").length - 1];
try {
- cloneOnce(repoUrl, repoDirPath);
- createAndWriteCommitMetadata(commit, repoDirPath, commitDirPath);
- writeCommitDiff(commitId, repoDirPath, commitDirPath);
+ manager.start(repoUrl);
+ cloneOnce(repoUrl, repoDirPath);
+ createAndWriteCommitMetadata(commit, repoDirPath, commitDirPath);
+ writeCommitDiff(commitId, repoDirPath, commitDirPath);
+ manager.complete(repoUrl);
} catch (IOException e) {
e.printStackTrace();
continue;
From 93b0f7acb497389cea1872e7e0e523bc9f3052b5 Mon Sep 17 00:00:00 2001
From: Pedro GALVAO
Date: Fri, 29 Apr 2022 14:23:50 +0200
Subject: [PATCH 14/83] Parallel processing working for repos with tar (need to
test more)
---
.../java/org/eclipse/steady/kb/Import.java | 60 ++++---
.../java/org/eclipse/steady/kb/Manager.java | 150 ++++++++++++------
.../steady/kb/task/ExtractOrClone.java | 130 ++++++++++-----
.../kb/task/ImportAffectedLibraries.java | 6 +
.../steady/kb/task/ImportVulnerability.java | 41 ++++-
.../org/eclipse/steady/kb/util/Metadata.java | 27 +++-
6 files changed, 299 insertions(+), 115 deletions(-)
diff --git a/kb-importer/src/main/java/org/eclipse/steady/kb/Import.java b/kb-importer/src/main/java/org/eclipse/steady/kb/Import.java
index f6b2b1a75..29bafd664 100644
--- a/kb-importer/src/main/java/org/eclipse/steady/kb/Import.java
+++ b/kb-importer/src/main/java/org/eclipse/steady/kb/Import.java
@@ -6,14 +6,16 @@
import java.nio.file.Path;
import java.nio.file.Paths;
import org.apache.logging.log4j.Logger;
+import com.github.packageurl.MalformedPackageURLException;
import org.eclipse.steady.shared.util.FileUtil;
import org.eclipse.steady.backend.BackendConnector;
import org.eclipse.steady.kb.task.ExtractOrClone;
+import org.eclipse.steady.kb.task.ImportVulnerability;
+import org.eclipse.steady.kb.task.ImportAffectedLibraries;
import org.eclipse.steady.kb.util.Metadata;
import org.eclipse.steady.kb.model.Vulnerability;
import org.eclipse.steady.backend.BackendConnectionException;
-import org.eclipse.steady.kb.Manager;
public class Import implements Runnable {
@@ -48,55 +50,77 @@ public String getVulnId() {
@Override
public void run() {
+
+ manager.setVulnStatus(vulnId, Manager.VulnStatus.PROCESSING);
boolean bugExists = false;
try {
- // System.out.println("before isBugExisting");
bugExists = this.backendConnector.isBugExisting(vulnId);
- // System.out.println("after isBugExisting");
} catch (BackendConnectionException e) {
log.error("Can't connect to the Backend");
return;
}
+ System.out.println("a");
Boolean overwrite = (Boolean) args.get(OVERWRITE_OPTION);
if (bugExists) {
if (overwrite) {
args.put(DELETE, true);
} else {
- System.out.println("bugExists no Overwrite");
log.info("Bug [{}] already exists in backend, analysis will be skipped", vulnId);
return;
}
}
+ System.out.println("b");
String statementPath = findStatementPath();
- System.out.println("statementPath");
- System.out.println(statementPath);
+ System.out.println("c");
+
if (statementPath != null) {
+ System.out.println("d");
Vulnerability vuln;
try {
+ // System.out.println("getFromYaml...");
vuln = Metadata.getFromYaml(statementPath);
+ // System.out.println("after getFromYaml");
} catch (IOException e) {
log.error("Error while reading Yaml file for [{}]", vulnId);
return;
}
- // ImportVulnerability importVulnerability = new ImportVulnerability(vuln, args);
- // ImportAffectedLibraries importAffectedLibraries = new ImportAffectedLibraries(vuln, args);
+ System.out.println("e");
+ if (vuln.getCommits() == null || vuln.getCommits().size() == 0) {
+ log.error("No fix commits for vulnerability " + vuln.getVulnId());
+ manager.setVulnStatus(vuln.getVulnId(), Manager.VulnStatus.NO_FIXES);
+ return;
+ }
+
+ ExtractOrClone extractOrClone =
+ new ExtractOrClone(this.manager, vuln, new File(this.vulnDir.toString()));
+ extractOrClone.execute();
- ExtractOrClone extractOrClone = new ExtractOrClone(this.manager);
- extractOrClone.execute(new File(this.vulnDir.toString()), vuln);
- // importVulnerability.execute();
- // importAffectedLibraries.execute();
+ if (manager.getVulnStatus(vuln.getVulnId()) != Manager.VulnStatus.FAILED) {
+ manager.setVulnStatus(vuln.getVulnId(), Manager.VulnStatus.DIFF_DONE);
+ ImportVulnerability importVulnerability = new ImportVulnerability();
+ ImportAffectedLibraries importAffectedLibraries = new ImportAffectedLibraries();
+ try {
+ importVulnerability.execute(vuln, args, backendConnector);
+ } catch (IOException | BackendConnectionException e) {
+ manager.setVulnStatus(vuln.getVulnId(), Manager.VulnStatus.FAILED_IMPORT_VULN);
+ e.printStackTrace();
+ }
+ try {
+ importAffectedLibraries.execute(vuln, args, backendConnector);
+ } catch (IOException | MalformedPackageURLException | BackendConnectionException e) {
+ manager.setVulnStatus(vuln.getVulnId(), Manager.VulnStatus.FAILED_IMPORT_LIB);
+ e.printStackTrace();
+ }
+ manager.setVulnStatus(vuln.getVulnId(), Manager.VulnStatus.IMPORTED);
+ }
}
}
public String findStatementPath() {
- // TODO: Should also check for metadata.json?
// Review this function
if (FileUtil.isAccessibleFile(vulnDir + File.separator + STATEMENT_YAML)) {
return vulnDir + File.separator + STATEMENT_YAML;
- }
- // Since there is one Import task per vulnerability, there is no need to loop over
- // subdirectories
- else if (FileUtil.isAccessibleDirectory(vulnDir)) {
+ } else if (FileUtil.isAccessibleDirectory(vulnDir)) {
File directory = new File(vulnDir.toString());
File[] fList = directory.listFiles();
if (fList != null) {
@@ -107,7 +131,7 @@ else if (FileUtil.isAccessibleDirectory(vulnDir)) {
return file.getAbsolutePath() + File.separator + STATEMENT_YAML;
} else {
Import.log.warn(
- "Skipping {} as the directory does not contain statement.yaml" + " file",
+ "Skipping {} as the directory does not contain statement.yaml file",
file.getAbsolutePath());
}
}
diff --git a/kb-importer/src/main/java/org/eclipse/steady/kb/Manager.java b/kb-importer/src/main/java/org/eclipse/steady/kb/Manager.java
index 0aff3bf2e..4fde87656 100644
--- a/kb-importer/src/main/java/org/eclipse/steady/kb/Manager.java
+++ b/kb-importer/src/main/java/org/eclipse/steady/kb/Manager.java
@@ -1,16 +1,14 @@
package org.eclipse.steady.kb;
+import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;
import java.util.concurrent.ThreadPoolExecutor;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.BlockingQueue;
-import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.Executors;
-
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
+
import java.io.File;
import org.eclipse.steady.shared.util.VulasConfiguration;
@@ -18,55 +16,53 @@
public class Manager {
- private static int imported = 0;
-
- public static void addStatus(String vulnId, VulnStatus vulnStatus) {
- imported += 1;
- System.out.println("addStatus()");
- System.out.println(vulnId);
+ public void setVulnStatus(String vulnId, VulnStatus vulnStatus) {
vulnerabilitiesStatus.put(vulnId, vulnStatus);
- System.out.println("addStatus()2");
+ }
+
+ public VulnStatus getVulnStatus(String vulnId) {
+ return vulnerabilitiesStatus.get(vulnId);
}
private ThreadPoolExecutor executor =
- //new MyThreadExecutor(16, 32, 60, TimeUnit.SECONDS, new LinkedBlockingQueue<>());
- //(ThreadPoolExecutor) Executors.newCachedThreadPool();
- (ThreadPoolExecutor) Executors.newFixedThreadPool(8);
+ // new MyThreadExecutor(16, 32, 60, TimeUnit.SECONDS, new LinkedBlockingQueue<>());
+ (ThreadPoolExecutor) Executors.newCachedThreadPool();
+ // (ThreadPoolExecutor) Executors.newFixedThreadPool(8);
- enum VulnStatus {
+ public enum VulnStatus {
NOT_STARTED,
PROCESSING,
+ DIFF_DONE,
IMPORTED,
- FAILED
+ FAILED,
+ FAILED_IMPORT_LIB,
+ FAILED_IMPORT_VULN,
+ NO_FIXES
}
private static Map vulnerabilitiesStatus = new HashMap();
- // synchronized Map reposInProcess = new HashMap();
- Map repoLocks = new HashMap();
-
-
- //private synchronized Set vulnDone;
- /*public synchronized boolean isRepoInProcess(String repo) {
- return reposInProcess.get(repo);
- }*/
+ Map repoLocks = new HashMap();
- public void start(String repo) {
- // reposInProcess.put(repo, true);
- if (!repoLocks.containsKey(repo)){
+ public void lockRepo(String repo) {
+ System.out.println("Lock: " + repo);
+ if (!repoLocks.containsKey(repo)) {
+ System.out.println("no key: " + repo);
repoLocks.put(repo, new ReentrantLock());
}
repoLocks.get(repo).lock();
+ System.out.println("Locked:" + repo);
}
- public void complete(String repo) {
+ public void unlockRepo(String repo) {
+ System.out.println("Unlock: " + repo);
if (!repoLocks.containsKey(repo)) {
System.out.println("ERROR : Lock not found");
return;
}
repoLocks.get(repo).unlock();
+ System.out.println("Unlocked: " + repo);
}
- //HashMap all_vulns =
public synchronized void start(
String statementsPath, HashMap mapCommandOptionValues) {
@@ -79,18 +75,37 @@ public synchronized void start(
for (File dir : subdirs) {
String dirPath = dir.getPath();
- mapCommandOptionValues.put(Import.DIRECTORY_OPTION, dirPath);
- Import command = new Import(this, mapCommandOptionValues);
- executor.submit(command);
+ String vulnId = dir.getName().toString();
+ setVulnStatus(vulnId, VulnStatus.NOT_STARTED);
}
- for (int i = 0; i < 10; i++) {
+ for (File dir : subdirs) {
+ String dirPath = dir.getPath();
+ System.out.println(dirPath);
+ if (dir.getName().startsWith("CVE")) {
+ // It is necessary to copy the arguments to avoid concurrent modification
+ HashMap args = new HashMap(mapCommandOptionValues);
+ System.out.println(args);
+ args.put(Import.DIRECTORY_OPTION, dirPath);
+ System.out.println(args);
+ Import command = new Import(this, args);
+ System.out.println("after new Import");
+ executor.submit(command);
+ // command.run();
+ System.out.println(status());
+ /*try {
+ Thread.sleep(100);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }*/
+ }
+ }
+ while (true) {
+ System.out.println(status());
try {
- Thread.sleep(10000);
+ Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
- System.out.println("Interrupted");
}
- System.out.println(status());
}
}
@@ -105,18 +120,59 @@ private void setUploadConfiguration(HashMap args) {
}
public String status() {
- /*int imported = 0;
- int others = 0;
+ int not_started = 0;
+ int imported = 0;
+ int processing = 0;
+ int diff_done = 0;
+ int no_fixes = 0;
+ int failed = 0;
+ int failed_vuln = 0;
+ int failed_lib = 0;
for (VulnStatus vulnStatus : new ArrayList(vulnerabilitiesStatus.values())) {
- if (vulnStatus == VulnStatus.IMPORTED) {
- imported += 1;
- }
- else {
- others += 1;
- }
- }*/
-
+ switch (vulnStatus) {
+ case NOT_STARTED:
+ not_started += 1;
+ break;
+ case IMPORTED:
+ imported += 1;
+ break;
+ case PROCESSING:
+ processing += 1;
+ break;
+ case DIFF_DONE:
+ diff_done += 1;
+ break;
+ case NO_FIXES:
+ no_fixes += 1;
+ break;
+ case FAILED_IMPORT_VULN:
+ failed_vuln += 1;
+ break;
+ case FAILED_IMPORT_LIB:
+ failed_lib += 1;
+ break;
+ case FAILED:
+ failed += 1;
+ break;
+ default:
+ break;
+ }
+ }
return "imported = "
- + Integer.toString(imported); // + "\nothers = " + Integer.toString(others);
+ + Integer.toString(imported)
+ + "\nnot_started = "
+ + Integer.toString(not_started)
+ + "\nprocessing = "
+ + Integer.toString(processing)
+ + "\ndiff_done = "
+ + Integer.toString(diff_done)
+ + "\nno_commits = "
+ + Integer.toString(no_fixes)
+ + "\nfailed = "
+ + Integer.toString(failed)
+ + "\nfailed vuln = "
+ + Integer.toString(failed_lib)
+ + "\nfailed lib = "
+ + Integer.toString(failed_vuln);
}
}
diff --git a/kb-importer/src/main/java/org/eclipse/steady/kb/task/ExtractOrClone.java b/kb-importer/src/main/java/org/eclipse/steady/kb/task/ExtractOrClone.java
index 3156ecd4c..082d77af9 100644
--- a/kb-importer/src/main/java/org/eclipse/steady/kb/task/ExtractOrClone.java
+++ b/kb-importer/src/main/java/org/eclipse/steady/kb/task/ExtractOrClone.java
@@ -5,6 +5,7 @@
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.nio.file.Files;
+import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
import java.util.HashMap;
@@ -20,19 +21,31 @@ public class ExtractOrClone {
private static final String GIT_DIRECTORY = "git-repos";
private final Manager manager;
+ private final Vulnerability vuln;
+ private final String vulnId;
+ private final String dirPath;
+ private final File tarFile;
- public ExtractOrClone(Manager manager){
+ public ExtractOrClone(Manager manager, Vulnerability vuln, File dir) {
this.manager = manager;
+ this.vuln = vuln;
+ this.vulnId = vuln.getVulnId();
+ this.dirPath = dir.getPath();
+ this.tarFile = getTarFile(dirPath);
+ System.out.println("ExtractOrClone constructor");
}
- public void execute(File dir, Vulnerability vuln) {
- String dirPath = dir.getPath();
- File tarFile = getTarFile(dirPath);
+ public void execute() {
+ System.out.println("ExtractOrClone.execute()");
if (tarFile != null) {
+ System.out.println("if (tarFile != null)");
extract(tarFile, dirPath);
} else {
- clone(vuln, dirPath);
+ System.out.println("else");
+ System.out.println("skipping clone");
+ manager.setVulnStatus(this.vulnId, Manager.VulnStatus.FAILED);
+ // clone(vuln, dirPath);
}
System.out.println("ExtractOrClone : done (" + dirPath + ")");
}
@@ -61,41 +74,58 @@ public File getTarFile(String dirPath) {
}
public void extract(File tarFile, String dirPath) {
+
+ System.out.println("extract");
String extractCommand = "tar -xf " + tarFile.getPath() + " --directory " + dirPath;
try {
Process process = Runtime.getRuntime().exec(extractCommand);
process.waitFor();
+
+ File dir = new File(dirPath);
+
+ List commits = vuln.getCommits();
+ for (Commit commit : commits) {
+ String commitDirPath = dirPath + File.separator + commit.getCommitId();
+ createAndWriteCommitMetadata(commit, null, commitDirPath);
+ }
+
} catch (IOException | InterruptedException e) {
+ String vulnId = dirPath.split(File.separator)[dirPath.split(File.separator).length - 1];
+ manager.setVulnStatus(vulnId, Manager.VulnStatus.FAILED);
e.printStackTrace();
}
}
public void clone(Vulnerability vuln, String dirPath) {
+ System.out.println("clone");
+ System.out.println(vuln);
+
List commits = vuln.getCommits();
+ System.out.println(commits);
if (commits.size() == 0) {
System.out.println("NO COMMITS");
return;
}
+
for (Commit commit : commits) {
- // TODO : lock the repo from this point
- // can the bugs have multiple repositories?
String repoUrl = commit.getRepoUrl();
String commitId = commit.getCommitId();
String commitDirPath = dirPath + File.separator + commitId;
System.out.println("commitDirPath : " + commitDirPath);
File commitDir = new File(commitDirPath);
String repoDirPath =
- GIT_DIRECTORY + File.separator + repoUrl.split("/")[repoUrl.split("/").length - 1];
+ GIT_DIRECTORY + File.separator + repoUrl.replace("https://", "").replace("/", "_");
+ manager.lockRepo(repoUrl);
try {
- manager.start(repoUrl);
- cloneOnce(repoUrl, repoDirPath);
- createAndWriteCommitMetadata(commit, repoDirPath, commitDirPath);
- writeCommitDiff(commitId, repoDirPath, commitDirPath);
- manager.complete(repoUrl);
- } catch (IOException e) {
+ cloneOnce(repoUrl, repoDirPath);
+ createAndWriteCommitMetadata(commit, repoDirPath, commitDirPath);
+ writeCommitDiff(commitId, repoDirPath, commitDirPath);
+ } catch (IOException | InterruptedException e) {
e.printStackTrace();
+ manager.setVulnStatus(vuln.getVulnId(), Manager.VulnStatus.FAILED);
continue;
}
+ manager.unlockRepo(repoUrl);
}
}
@@ -107,33 +137,37 @@ public void createAndWriteCommitMetadata(Commit commit, String repoDirPath, Stri
File commitMetadataFile = new File(commitDirPath);
// if (!Files.exists(commitMetadataPath)) {
HashMap commitMetadata = new HashMap();
- String gitShowCommand =
- "git -C " + repoDirPath + " show --no-patch --no-notes --pretty='%at' " + commitId;
- Process gitShow =
- Runtime.getRuntime()
- .exec(gitShowCommand); // have problems probably caused by parallelization
-
- BufferedReader gitShowStdInput =
- new BufferedReader(new InputStreamReader(gitShow.getInputStream()));
- BufferedReader gitShowError =
- new BufferedReader(new InputStreamReader(gitShow.getErrorStream()));
+
String timestamp;
- if ((timestamp = gitShowStdInput.readLine()) == null) {
- System.out.println("NULL 1");
- }
- System.out.println("timestamp1");
- System.out.println(timestamp);
- if (timestamp == null) {
- System.out.println("NULL!!!");
+ if (repoDirPath == null) {
+ System.out.println("repoDirPath == null");
+ Path timestampPath = Paths.get(commitDirPath + File.separator + "timestamp");
+ System.out.println(commitDirPath + File.separator + "timestamp");
+ timestamp = new String(Files.readAllBytes(timestampPath)).replace("\n", "");
+ System.out.println(timestamp);
+ } else {
+ String gitShowCommand =
+ "git -C " + repoDirPath + " show --no-patch --no-notes --pretty='%at' " + commitId;
+ Process gitShow = Runtime.getRuntime().exec(gitShowCommand);
+
+ BufferedReader gitShowStdInput =
+ new BufferedReader(new InputStreamReader(gitShow.getInputStream()));
+ System.out.println(gitShowCommand);
+
+ if ((timestamp = gitShowStdInput.readLine()) == null || timestamp == null) {
+ BufferedReader gitShowError =
+ new BufferedReader(new InputStreamReader(gitShow.getErrorStream()));
+ System.out.println("Error: Failed to get commit timestamp");
+ String error = gitShowError.readLine();
+ System.out.println("git show Error: " + error);
+ manager.setVulnStatus(vuln.getVulnId(), Manager.VulnStatus.FAILED);
+ }
}
- String error = gitShowError.readLine();
- System.out.println("git show Error: " + error);
/*
while ((timestamp = gitShowStdInput.readLine()) == null) {
System.out.println("timestamp : "+timestamp);
}*/
System.out.println("timestamp : " + timestamp);
-
commitMetadata.put("repository", commit.getRepoUrl());
commitMetadata.put("branch", commit.getBranch());
commitMetadata.put("timestamp", timestamp);
@@ -142,18 +176,28 @@ public void createAndWriteCommitMetadata(Commit commit, String repoDirPath, Stri
Metadata.writeCommitMetadata(commitDirPath, commitMetadata);
}
- public void cloneOnce(String repoUrl, String repoDirPath) {
+ public void cloneOnce(String repoUrl, String repoDirPath)
+ throws IOException, InterruptedException {
String gitCloneCommand = "git clone " + repoUrl + " " + repoDirPath;
File repoDir = new File(repoDirPath);
+
if (Files.exists(Paths.get(repoDirPath))) {
System.out.println("Folder " + repoDirPath + " exists. Skipping git clone.");
} else {
- try {
- Process gitClone = Runtime.getRuntime().exec(gitCloneCommand);
- gitClone.waitFor();
- } catch (IOException | InterruptedException e) {
- e.printStackTrace();
+ Process gitClone = Runtime.getRuntime().exec(gitCloneCommand);
+ BufferedReader gitCloneStdInput =
+ new BufferedReader(new InputStreamReader(gitClone.getInputStream()));
+ BufferedReader gitCloneErrorInput =
+ new BufferedReader(new InputStreamReader(gitClone.getErrorStream()));
+ String line;
+ while ((line = gitCloneStdInput.readLine()) != null) {
+ System.out.println("git clone");
+ System.out.println(line);
+ if ((line = gitCloneErrorInput.readLine()) != null) {
+ System.out.println(line);
+ }
}
+ gitClone.waitFor();
}
}
@@ -185,6 +229,9 @@ public void writeCommitDiff(String commitId, String repoDirPath, String commitDi
+ "before"
+ File.separator
+ filename;
+ } else {
+ System.out.println("Error: git cat-file didn't work");
+ manager.setVulnStatus(vulnId, Manager.VulnStatus.FAILED);
}
String gitCatAfterCommand =
@@ -205,6 +252,9 @@ public void writeCommitDiff(String commitId, String repoDirPath, String commitDi
+ "after"
+ File.separator
+ filename;
+ } else {
+ System.out.println("Error: git cat-file didn't work");
+ manager.setVulnStatus(vulnId, Manager.VulnStatus.FAILED);
}
}
}
diff --git a/kb-importer/src/main/java/org/eclipse/steady/kb/task/ImportAffectedLibraries.java b/kb-importer/src/main/java/org/eclipse/steady/kb/task/ImportAffectedLibraries.java
index 3d471ea8d..6a69fe5c1 100755
--- a/kb-importer/src/main/java/org/eclipse/steady/kb/task/ImportAffectedLibraries.java
+++ b/kb-importer/src/main/java/org/eclipse/steady/kb/task/ImportAffectedLibraries.java
@@ -53,6 +53,9 @@ public class ImportAffectedLibraries implements Task {
public void execute(
Vulnerability vuln, HashMap args, BackendConnector backendConnector)
throws MalformedPackageURLException, BackendConnectionException, JsonProcessingException {
+
+ System.out.println("ImportAffectedLibraries: " + vuln.getVulnId());
+
List artifacts = vuln.getArtifacts();
if (artifacts == null || artifacts.isEmpty()) {
return;
@@ -121,6 +124,7 @@ public void execute(
affectedLibsToUpsert.add(affectedLibrary);
}
}
+ System.out.println("ImportAffectedLibraries 2");
if (!affectedLibsToUpsert.isEmpty()) {
ObjectMapper mapper = new ObjectMapper();
@@ -129,6 +133,8 @@ public void execute(
backendConnector.uploadBugAffectedLibraries(
null, vuln.getVulnId(), json, AffectedVersionSource.KAYBEE);
}
+
+ System.out.println("ImportAffectedLibraries: " + vuln.getVulnId() + " complete");
}
private void setAfftectedLib(Artifact artifact, AffectedLibrary affectedLibrary) {
diff --git a/kb-importer/src/main/java/org/eclipse/steady/kb/task/ImportVulnerability.java b/kb-importer/src/main/java/org/eclipse/steady/kb/task/ImportVulnerability.java
index 34b2aa366..2623c3a89 100755
--- a/kb-importer/src/main/java/org/eclipse/steady/kb/task/ImportVulnerability.java
+++ b/kb-importer/src/main/java/org/eclipse/steady/kb/task/ImportVulnerability.java
@@ -63,11 +63,15 @@ public void execute(
Vulnerability vuln, HashMap args, BackendConnector _backendConnector)
throws BackendConnectionException, JsonSyntaxException, IOException {
String vulnId = vuln.getVulnId();
+ System.out.println("ImportVulnerability: " + vulnId);
this.backendConnector = _backendConnector;
List commits = new ArrayList();
File file = new File((String) args.get(Import.DIRECTORY_OPTION));
+ System.out.println("ImportVulnerability 1 ");
+ System.out.println("directory option " + (String) args.get(Import.DIRECTORY_OPTION));
+
File commitDirs[] =
file.listFiles(
new FileFilter() {
@@ -76,22 +80,47 @@ public boolean accept(File file) {
return file.isDirectory();
}
});
+ // String commitDirsPaths[] = file.list();
+ System.out.println("ImportVulnerability 2");
+ System.out.println(commitDirs);
+ System.out.println(commitDirs.length);
for (File commitDir : commitDirs) {
- String dir = commitDir.getAbsolutePath();
- Commit commit = null;
- commit = Metadata.getCommitMetadata(dir);
+ // File commitDir = new File(commitDirPath);
+ System.out.println("commitDir.getName()");
+ System.out.println(commitDir.getName());
+ System.out.println(commitDir.getPath());
+ System.out.println(commitDir.isDirectory());
+
+ if (commitDir.isDirectory()) {
+ System.out.println("for commitDir");
+ System.out.println(commitDir.getName());
+
+ System.out.println("for commitDir 2");
- if (commit != null) {
- commits.add(commit);
+ String dir = commitDir.getAbsolutePath();
+ System.out.println("for commitDir 3");
+ Commit commit = null;
+ commit = Metadata.getCommitMetadata(dir);
+ System.out.println("for commitDir 4");
+
+ if (commit != null) {
+ System.out.println("for commitDir 5");
+ commits.add(commit);
+ System.out.println("for commitDir 6");
+ }
+ System.out.println("for commitDir 7");
}
}
+ System.out.println("ImportVulnerability 3");
Set changes = null;
Map> allChanges = new HashMap>();
for (Commit commit : commits) {
+ System.out.println("ImportVuln for commit");
+ System.out.println(commit);
changes = ConstructSet.identifyConstructChanges(commit, allChanges);
- if ((Boolean) args.get(Import.VERBOSE_OPTION)) {
+ if (args.containsKey(Import.VERBOSE_OPTION) && (Boolean) args.get(Import.VERBOSE_OPTION)) {
for (ConstructChange chg : changes) {
log.info(chg.toString());
}
diff --git a/kb-importer/src/main/java/org/eclipse/steady/kb/util/Metadata.java b/kb-importer/src/main/java/org/eclipse/steady/kb/util/Metadata.java
index b58e75dfd..25541020f 100755
--- a/kb-importer/src/main/java/org/eclipse/steady/kb/util/Metadata.java
+++ b/kb-importer/src/main/java/org/eclipse/steady/kb/util/Metadata.java
@@ -121,19 +121,24 @@ public static Vulnerability getVulnerabilityMetadata(String rootDir)
public static Vulnerability getFromYaml(String metadataPathString) throws IOException {
// Yaml yaml = new Yaml(new Constructor(Vulnerability.class));
+ System.out.println("in getFromYaml");
+
Path metadataPath = Paths.get(metadataPathString);
Yaml yaml = new Yaml();
// String metadataString = File.readString(dirPath + "/metadata.yaml");
String metadataString = new String(Files.readAllBytes(metadataPath));
+ System.out.println("getFromYaml 1");
// Vulnerability vulnerability = yaml.load(metadataString);
Map vulnerabilityMap = yaml.load(metadataString);
// ObjectMapper objectMapper = new ObjectMapper();
// Vulnerability vulnerability = objectMapper.convertValue(vulnerabilityMap,
// Vulnerability.class);
+ System.out.println("getFromYaml 2");
Vulnerability vulnerability = new Vulnerability();
+ System.out.println("getFromYaml 3");
vulnerability.setVulnId((String) vulnerabilityMap.get("vulnerability_id"));
@@ -169,15 +174,26 @@ public static Vulnerability getFromYaml(String metadataPathString) throws IOExce
List aliases = (List) vulnerabilityMap.get("aliases");
vulnerability.setAliases(aliases);
}
+ System.out.println("getFromYaml 4");
- List> fixes =
- (List>) vulnerabilityMap.get("fixes");
List commitList = new ArrayList();
- if (fixes != null) {
+ if (vulnerabilityMap.containsKey("fixes")) {
+
+ System.out.println("getFromYaml contains fixes");
+ List> fixes =
+ (List>) vulnerabilityMap.get("fixes");
for (HashMap fix : fixes) {
- String branch = (String) fix.get("id");
+ System.out.println("getFromYaml contains fixes 1");
+ System.out.println(fix);
+ System.out.println(fix.keySet());
+ System.out.println(fix.get("id"));
+
+ String branch = fix.get("id").toString();
+ System.out.println("getFromYaml contains fixes branch:" + branch);
List> commits = (List>) fix.get("commits");
for (HashMap commitMap : commits) {
+ System.out.println("Metadata for commit");
+ System.out.println(commitMap);
Commit commit = new Commit();
String repository = commitMap.get("repository");
String commitId = commitMap.get("id");
@@ -187,7 +203,10 @@ public static Vulnerability getFromYaml(String metadataPathString) throws IOExce
commitList.add(commit);
}
}
+ System.out.println("getFromYaml 5");
+
vulnerability.setCommits(commitList);
+ System.out.println("getFromYaml 6");
}
return vulnerability;
From 4e50e90945c98b423abeb948db56483bee360fec Mon Sep 17 00:00:00 2001
From: Pedro GALVAO
Date: Fri, 29 Apr 2022 17:12:18 +0200
Subject: [PATCH 15/83] started writing a test
---
.../java/org/eclipse/steady/kb/Manager.java | 5 +--
.../steady/kb/task/ExtractOrClone.java | 12 +++----
.../steady/kb/task/TestExtractOrClone.java | 33 +++++++++++++++++++
3 files changed, 40 insertions(+), 10 deletions(-)
create mode 100644 kb-importer/src/test/java/org/eclipse/steady/kb/task/TestExtractOrClone.java
diff --git a/kb-importer/src/main/java/org/eclipse/steady/kb/Manager.java b/kb-importer/src/main/java/org/eclipse/steady/kb/Manager.java
index 4fde87656..d052b1b16 100644
--- a/kb-importer/src/main/java/org/eclipse/steady/kb/Manager.java
+++ b/kb-importer/src/main/java/org/eclipse/steady/kb/Manager.java
@@ -65,7 +65,7 @@ public void unlockRepo(String repo) {
}
public synchronized void start(
- String statementsPath, HashMap mapCommandOptionValues) {
+ String statementsPath, HashMap mapCommandOptionValues) {
File statementsDir = new File(statementsPath);
File[] subdirs = statementsDir.listFiles();
@@ -84,11 +84,8 @@ public synchronized void start(
if (dir.getName().startsWith("CVE")) {
// It is necessary to copy the arguments to avoid concurrent modification
HashMap args = new HashMap(mapCommandOptionValues);
- System.out.println(args);
args.put(Import.DIRECTORY_OPTION, dirPath);
- System.out.println(args);
Import command = new Import(this, args);
- System.out.println("after new Import");
executor.submit(command);
// command.run();
System.out.println(status());
diff --git a/kb-importer/src/main/java/org/eclipse/steady/kb/task/ExtractOrClone.java b/kb-importer/src/main/java/org/eclipse/steady/kb/task/ExtractOrClone.java
index 082d77af9..77717b642 100644
--- a/kb-importer/src/main/java/org/eclipse/steady/kb/task/ExtractOrClone.java
+++ b/kb-importer/src/main/java/org/eclipse/steady/kb/task/ExtractOrClone.java
@@ -43,9 +43,9 @@ public void execute() {
extract(tarFile, dirPath);
} else {
System.out.println("else");
- System.out.println("skipping clone");
- manager.setVulnStatus(this.vulnId, Manager.VulnStatus.FAILED);
- // clone(vuln, dirPath);
+ //System.out.println("skipping clone");
+ //manager.setVulnStatus(this.vulnId, Manager.VulnStatus.FAILED);
+ clone(vuln, dirPath);
}
System.out.println("ExtractOrClone : done (" + dirPath + ")");
}
@@ -123,7 +123,7 @@ public void clone(Vulnerability vuln, String dirPath) {
} catch (IOException | InterruptedException e) {
e.printStackTrace();
manager.setVulnStatus(vuln.getVulnId(), Manager.VulnStatus.FAILED);
- continue;
+ break;
}
manager.unlockRepo(repoUrl);
}
@@ -190,13 +190,13 @@ public void cloneOnce(String repoUrl, String repoDirPath)
BufferedReader gitCloneErrorInput =
new BufferedReader(new InputStreamReader(gitClone.getErrorStream()));
String line;
- while ((line = gitCloneStdInput.readLine()) != null) {
+ /*while ((line = gitCloneStdInput.readLine()) != null) {
System.out.println("git clone");
System.out.println(line);
if ((line = gitCloneErrorInput.readLine()) != null) {
System.out.println(line);
}
- }
+ }*/
gitClone.waitFor();
}
}
diff --git a/kb-importer/src/test/java/org/eclipse/steady/kb/task/TestExtractOrClone.java b/kb-importer/src/test/java/org/eclipse/steady/kb/task/TestExtractOrClone.java
new file mode 100644
index 000000000..be3ec3e4b
--- /dev/null
+++ b/kb-importer/src/test/java/org/eclipse/steady/kb/task/TestExtractOrClone.java
@@ -0,0 +1,33 @@
+package org.eclipse.steady.kb.task;
+
+import java.io.IOException;
+
+import org.eclipse.steady.kb.model.Vulnerability;
+import org.eclipse.steady.kb.model.Import;
+import org.eclipse.steady.kb.util.Metadata;
+import org.eclipse.steady.shared.util.VulasConfiguration;
+import org.junit.Test;
+import com.github.packageurl.MalformedPackageURLException;
+import com.google.gson.JsonSyntaxException;
+
+public class TestExtractOrClone {
+ @Test
+ public void testExtract() {
+
+ Manager manager = new Manager();
+
+ Vulnerability vuln = Metadata.getFromYaml();
+
+ HashMap args = new HashMap();
+ args.put("v", false);
+ args.put(Import.OVERWRITE_OPTION, false);
+ args.put(Import.DIRECTORY_OPTION, "");
+
+ ExtractOrClone extractOrClone = new ExtractOrClone(manager, vuln, dir)
+ extractOrClone.execute();
+
+ // TODO : check extracted files
+
+ }
+
+}
\ No newline at end of file
From fbebcd9999262043ca65ef1ebc874fbd69a22adb Mon Sep 17 00:00:00 2001
From: Pedro GALVAO
Date: Tue, 3 May 2022 15:58:07 +0200
Subject: [PATCH 16/83] Test for ExtractOrClone
---
.../java/org/eclipse/steady/kb/Import.java | 3 +-
.../steady/kb/task/ExtractOrClone.java | 53 +-
.../org/eclipse/steady/kb/util/Metadata.java | 5 +-
.../java/org/eclipse/steady/kb/MainTest.java | 3 +-
.../steady/kb/task/TestExtractOrClone.java | 63 +-
.../eclipse/steady/kb/util/MetadataTest.java | 17 +
.../resources/testRootDir1/statement.yaml | 26 +
.../testRootDir6/changed-source-code.tar.gz | Bin 0 -> 151640 bytes
.../resources/testRootDir6/statement.yaml | 630 ++++++++++++++++++
.../resources/testRootDir7/statement.yaml | 630 ++++++++++++++++++
10 files changed, 1404 insertions(+), 26 deletions(-)
create mode 100755 kb-importer/src/test/resources/testRootDir1/statement.yaml
create mode 100644 kb-importer/src/test/resources/testRootDir6/changed-source-code.tar.gz
create mode 100644 kb-importer/src/test/resources/testRootDir6/statement.yaml
create mode 100644 kb-importer/src/test/resources/testRootDir7/statement.yaml
diff --git a/kb-importer/src/main/java/org/eclipse/steady/kb/Import.java b/kb-importer/src/main/java/org/eclipse/steady/kb/Import.java
index 29bafd664..8edf17081 100644
--- a/kb-importer/src/main/java/org/eclipse/steady/kb/Import.java
+++ b/kb-importer/src/main/java/org/eclipse/steady/kb/Import.java
@@ -69,9 +69,8 @@ public void run() {
return;
}
}
- System.out.println("b");
+
String statementPath = findStatementPath();
- System.out.println("c");
if (statementPath != null) {
System.out.println("d");
diff --git a/kb-importer/src/main/java/org/eclipse/steady/kb/task/ExtractOrClone.java b/kb-importer/src/main/java/org/eclipse/steady/kb/task/ExtractOrClone.java
index 77717b642..804bf41d2 100644
--- a/kb-importer/src/main/java/org/eclipse/steady/kb/task/ExtractOrClone.java
+++ b/kb-importer/src/main/java/org/eclipse/steady/kb/task/ExtractOrClone.java
@@ -8,6 +8,7 @@
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
+import java.util.concurrent.TimeUnit;
import java.util.HashMap;
import org.eclipse.steady.shared.util.FileUtil;
@@ -77,7 +78,9 @@ public void extract(File tarFile, String dirPath) {
System.out.println("extract");
String extractCommand = "tar -xf " + tarFile.getPath() + " --directory " + dirPath;
+
try {
+
Process process = Runtime.getRuntime().exec(extractCommand);
process.waitFor();
@@ -113,13 +116,18 @@ public void clone(Vulnerability vuln, String dirPath) {
String commitDirPath = dirPath + File.separator + commitId;
System.out.println("commitDirPath : " + commitDirPath);
File commitDir = new File(commitDirPath);
+ commitDir.mkdir();
String repoDirPath =
GIT_DIRECTORY + File.separator + repoUrl.replace("https://", "").replace("/", "_");
manager.lockRepo(repoUrl);
try {
cloneOnce(repoUrl, repoDirPath);
+ System.out.println("after cloneOnce");
createAndWriteCommitMetadata(commit, repoDirPath, commitDirPath);
+ System.out.println("after createAndWriteCommitMetadata");
writeCommitDiff(commitId, repoDirPath, commitDirPath);
+ System.out.println("after writeCommmitDiff");
+
} catch (IOException | InterruptedException e) {
e.printStackTrace();
manager.setVulnStatus(vuln.getVulnId(), Manager.VulnStatus.FAILED);
@@ -197,24 +205,36 @@ public void cloneOnce(String repoUrl, String repoDirPath)
System.out.println(line);
}
}*/
- gitClone.waitFor();
}
}
public void writeCommitDiff(String commitId, String repoDirPath, String commitDirPath)
- throws IOException {
+ throws IOException, InterruptedException {
String gitDiffCommand =
"git -C " + repoDirPath + " diff --name-only " + commitId + "^.." + commitId;
+ System.out.println(gitDiffCommand);
Process gitDiff = Runtime.getRuntime().exec(gitDiffCommand);
BufferedReader gitDiffStdInput =
new BufferedReader(new InputStreamReader(gitDiff.getInputStream()));
String filename;
while ((filename = gitDiffStdInput.readLine()) != null) {
+ System.out.println("while");
+ System.out.println(filename);
+
// for each file modified in the commit...
String gitCatBeforeCommand =
- "git -C " + repoDirPath + " cat-file -e " + commitId + "~1:" + filename + " &> /dev/null";
+ "git -C " + repoDirPath + " cat-file -e " + commitId + "~1:" + filename;// + " &> /dev/null";
Process gitCatBefore = Runtime.getRuntime().exec(gitCatBeforeCommand);
+
+ BufferedReader gitCatErrorInput =
+ new BufferedReader(new InputStreamReader(gitDiff.getErrorStream()));
+ gitCatBefore.waitFor();
if (gitCatBefore.exitValue() == 0) {
+ String filepath = commitDirPath + File.separator + "before" + File.separator + filename;
+ File file = new File(filepath);
+ File dir = file.getParentFile();
+ //Paths.createDirectories(dir.getPath());
+ dir.mkdirs();
// git -C $repo_dir show $commit_id~1:$F > $vulnerability_id/$commit_id/before/$F
String diffFileCommand =
"git -C "
@@ -224,21 +244,29 @@ public void writeCommitDiff(String commitId, String repoDirPath, String commitDi
+ "~1:"
+ filename
+ " > "
- + commitDirPath
- + File.separator
- + "before"
- + File.separator
- + filename;
+ + filepath;
+ System.out.println(diffFileCommand);
+ Process gitDiffFileBefore = Runtime.getRuntime().exec(diffFileCommand);
+ gitDiffFileBefore.waitFor();
+
} else {
System.out.println("Error: git cat-file didn't work");
+ System.out.println(gitCatErrorInput.readLine());
manager.setVulnStatus(vulnId, Manager.VulnStatus.FAILED);
}
String gitCatAfterCommand =
"git -C " + repoDirPath + " cat-file -e " + commitId + ":" + filename + " &> /dev/null";
Process gitCatAfter = Runtime.getRuntime().exec(gitCatBeforeCommand);
+ gitCatAfter.waitFor();
+
if (gitCatAfter.exitValue() == 0) {
// git -C $repo_dir show $commit_id:$F > $vulnerability_id/$commit_id/after/$F
+ String filepath = commitDirPath + File.separator + "after" + File.separator + filename;
+ File file = new File(filepath);
+ File dir = file.getParentFile();
+ //Paths.createDirectories(dir.getPath());
+ dir.mkdirs();
String diffFileCommand =
"git -C "
+ repoDirPath
@@ -247,11 +275,10 @@ public void writeCommitDiff(String commitId, String repoDirPath, String commitDi
+ ":"
+ filename
+ " > "
- + commitDirPath
- + File.separator
- + "after"
- + File.separator
- + filename;
+ + filepath;
+ System.out.println(diffFileCommand);
+ Process gitDiffFileAfter = Runtime.getRuntime().exec(diffFileCommand);
+ gitDiffFileAfter.waitFor();
} else {
System.out.println("Error: git cat-file didn't work");
manager.setVulnStatus(vulnId, Manager.VulnStatus.FAILED);
diff --git a/kb-importer/src/main/java/org/eclipse/steady/kb/util/Metadata.java b/kb-importer/src/main/java/org/eclipse/steady/kb/util/Metadata.java
index 25541020f..01cc202d6 100755
--- a/kb-importer/src/main/java/org/eclipse/steady/kb/util/Metadata.java
+++ b/kb-importer/src/main/java/org/eclipse/steady/kb/util/Metadata.java
@@ -81,8 +81,9 @@ public static Commit getCommitMetadata(String commitDir) throws JsonSyntaxExcept
public static void writeCommitMetadata(String commitDir, HashMap commitMetadata)
throws IOException {
String filePath = commitDir + File.separator + META_PROPERTIES_FILE;
- // File file = new File(filePath);
- // file.createNewFile();
+ System.out.println(filePath);
+ File file = new File(filePath);
+ file.createNewFile();
Writer writer = new FileWriter(filePath, false);
new Gson().toJson(commitMetadata, writer);
writer.close();
diff --git a/kb-importer/src/test/java/org/eclipse/steady/kb/MainTest.java b/kb-importer/src/test/java/org/eclipse/steady/kb/MainTest.java
index 379a3c4b5..ed3dd3b99 100755
--- a/kb-importer/src/test/java/org/eclipse/steady/kb/MainTest.java
+++ b/kb-importer/src/test/java/org/eclipse/steady/kb/MainTest.java
@@ -23,6 +23,7 @@
public class MainTest {
private static final String SPACE = " ";
+/*
@Test
public void testHelp() {
String args = "help";
@@ -33,5 +34,5 @@ public void testHelp() {
public void testVersion() {
String args = "version";
Main.main(args.split(SPACE));
- }
+ }*/
}
diff --git a/kb-importer/src/test/java/org/eclipse/steady/kb/task/TestExtractOrClone.java b/kb-importer/src/test/java/org/eclipse/steady/kb/task/TestExtractOrClone.java
index be3ec3e4b..0de514cb1 100644
--- a/kb-importer/src/test/java/org/eclipse/steady/kb/task/TestExtractOrClone.java
+++ b/kb-importer/src/test/java/org/eclipse/steady/kb/task/TestExtractOrClone.java
@@ -1,32 +1,79 @@
package org.eclipse.steady.kb.task;
import java.io.IOException;
+import java.io.File;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Arrays;
import org.eclipse.steady.kb.model.Vulnerability;
-import org.eclipse.steady.kb.model.Import;
+import org.eclipse.steady.kb.Import;
+import org.eclipse.steady.kb.Manager;
import org.eclipse.steady.kb.util.Metadata;
import org.eclipse.steady.shared.util.VulasConfiguration;
-import org.junit.Test;
import com.github.packageurl.MalformedPackageURLException;
import com.google.gson.JsonSyntaxException;
+import org.junit.Test;
+import org.junit.Before;
+import org.junit.runners.Parameterized;
+import org.junit.runners.Parameterized.Parameters;
+import org.junit.runner.RunWith;
+
+//@RunWith(Parameterized.class)
public class TestExtractOrClone {
- @Test
- public void testExtract() {
- Manager manager = new Manager();
+ Manager manager;
+ ClassLoader classLoader;
+ String dirPath;
- Vulnerability vuln = Metadata.getFromYaml();
+ /* @Before
+ public void initialize() {
+ this.manager = new Manager();
+ classLoader = getClass().getClassLoader();
+ this.dirPath = classLoader.getResource("testRootDir7").getPath();
+ }
+
+ public TestExtractOrClone(String dirName) {
+ classLoader = getClass().getClassLoader();
+ this.dirPath = classLoader.getResource(dirName).getPath();
+ }
+
+ @Parameterized.Parameters
+ public static List directories() {
+ return Arrays.asList(new Object[][] {
+ { "testRootDir6" },
+ { "testRootDir7" }
+ });
+ }*/
+
+ @Test
+ public void testClone() throws IOException {
+
+ this.manager = new Manager();
+ classLoader = getClass().getClassLoader();
+ this.dirPath = classLoader.getResource("testRootDir7").getPath();
+
+ File dir = new File(dirPath);
+ String statementPath = dirPath + File.separator + "statement.yaml";
+
+ Vulnerability vuln = Metadata.getFromYaml(statementPath);
HashMap args = new HashMap();
args.put("v", false);
args.put(Import.OVERWRITE_OPTION, false);
args.put(Import.DIRECTORY_OPTION, "");
- ExtractOrClone extractOrClone = new ExtractOrClone(manager, vuln, dir)
+ ExtractOrClone extractOrClone = new ExtractOrClone(manager, vuln, dir);
extractOrClone.execute();
- // TODO : check extracted files
+ File commitDir1 = new File(dirPath + File.separator + "1db7e02de3eb0c011ee6681f5a12eb9d166fea8");
+ File commitDir2 = new File(dirPath + File.separator + "d3acf45ea4db51fa5c4cbd0bc0e7b6d9ef805e6");
+ File commitDir3 = new File(dirPath + File.separator + "e0de9126ed8cf25cf141d3e66420da94e350708");
+
+ org.junit.Assert.assertEquals(commitDir1.exists(), true);
+ org.junit.Assert.assertEquals(commitDir2.exists(), true);
+ org.junit.Assert.assertEquals(commitDir3.exists(), true);
}
diff --git a/kb-importer/src/test/java/org/eclipse/steady/kb/util/MetadataTest.java b/kb-importer/src/test/java/org/eclipse/steady/kb/util/MetadataTest.java
index b5a02c0a6..0eabdf8ac 100755
--- a/kb-importer/src/test/java/org/eclipse/steady/kb/util/MetadataTest.java
+++ b/kb-importer/src/test/java/org/eclipse/steady/kb/util/MetadataTest.java
@@ -21,6 +21,7 @@
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import java.io.IOException;
+import java.io.File;
import org.eclipse.steady.kb.model.Commit;
import org.eclipse.steady.kb.model.Vulnerability;
@@ -96,4 +97,20 @@ public void testMetadataArtifactsPUrl() throws JsonSyntaxException, IOException
public void testInvalidCommitMetadataDir() throws JsonSyntaxException, IOException {
Metadata.getVulnerabilityMetadata("commitDir2");
}
+
+ @Test
+ public void testGetFromYaml() throws IOException {
+
+ ClassLoader classLoader = getClass().getClassLoader();
+ String path = classLoader.getResource("testRootDir1").getPath() + File.separator + "statement.yaml";
+ Vulnerability vuln = Metadata.getFromYaml(path);
+
+ System.out.println("vuln");
+ System.out.println(vuln);
+ System.out.println(vuln.getArtifacts());
+
+ assertEquals(3, vuln.getArtifacts().size());
+ assertEquals(3, vuln.getNotes().size());
+ assertEquals("COLLECTIONS-580", vuln.getVulnId());
+ }
}
diff --git a/kb-importer/src/test/resources/testRootDir1/statement.yaml b/kb-importer/src/test/resources/testRootDir1/statement.yaml
new file mode 100755
index 000000000..7ffa4cddd
--- /dev/null
+++ b/kb-importer/src/test/resources/testRootDir1/statement.yaml
@@ -0,0 +1,26 @@
+api_version: v1
+vulnerability_id: COLLECTIONS-580
+aliases:
+- TEST-1234
+- SOME-OTHER-ID-1234
+artifacts:
+- id: pkg:maven/org.apache.commons/commons-collections4@4.0
+ affected: true
+ reason: Test
+- id: pkg:maven/org.apache.commons/commons-collections4@4.0.1-SNAPSHOT
+ affected: true
+ reason: Test
+- id: pkg:maven/org.apache.commons/commons-collections4@4.1
+ affected: false
+ reason: Test
+notes:
+- links:
+ - https://issues.apache.org/jira/browse/COLLECTIONS-580
+ text: Arbitrary remote code execution with InvokerTransformer
+- links:
+ - https://issues.apache.org/jira/browse/COLLECTIONS-580
+ - https://github.com/apache/commons-collections/commit/b2b8f4adc557e4ef1ee2fe5e0ab46866c06ec55b
+ text: With InvokerTransformer serializable collections can be build that execute arbitrary Java code.
+- links:
+ - https://issues.apache.org/jira/browse/COLLECTIONS-580
+ text: With InvokerTransformer serializable collections can be build that execute arbitrary Java code.
\ No newline at end of file
diff --git a/kb-importer/src/test/resources/testRootDir6/changed-source-code.tar.gz b/kb-importer/src/test/resources/testRootDir6/changed-source-code.tar.gz
new file mode 100644
index 0000000000000000000000000000000000000000..5582d17829854c1d2676fa4ed852314b9d7c9a5c
GIT binary patch
literal 151640
zcmaglQ*16y)G+$mw#{AJd}`aay=&WUcWvA5uDNU5w%tD8|NYLzNlxD6By%;BjBX}t
zt@#nhz<^}V78`k}FO$0tU(GUtv-v_1eYvOj
z)enY0@4A+8{9b>5d|hh+c|yBeYhT&T&W{z}*N)9J?troP?7pu1?~jYJM!oq@pAYML
zxA5=N9UG6cTCeZr0h{teuk7sI-xBx^<(JQW#O|D2l6jxo1TH4qKz#h|=jrFZT6fNs
z)fJ+T09@kF9}me!Y>njLhwr}5#%jYoHb0M@qBh&Z+g8coMN3Jw=fl(4%`h
z;=V6u_UoHCECdXfW)+xS0$kPTMm`Ln%^!IJhFzZ01V0=GT)%&W0NYb%!9IaPH>K5>
z|IMt}(*GFoV>oI#|4kffiHl3K3&g)fe(XE;btnQ_XDXi=cxsBgS(my2>uVhZ1I~b@
zz8iGcY57PY6YGUS?`{BlVQ9y?`o|vyAmyTfI#witL$c7!KH`3{uO~1<1m!f1&O1O+
z=pPQSlqv=}zto@T2^jLz=l9*0v<$>Y{_mXml$SuOi#X!ge!`C}f$u(%XW-D+fBWVu
z1m=4*ee``60RP-~B7WaW+=n1`kmo~x0}FtTx9)<0g
z?X?y@*gqcBzjgk%N?T*+y!<8bl&}b>`DY-ouj9w?{iX4-wi#cp9ss=JckdD-6uM0Q
zaXxUJg&hY39K;iPNQB!;`8PW%XRC!|Mf~(de#|zyu$-
zZB{FQ!!4~<>pW5hb|6{Ig!x>{1+Qg_69w%{&WscL#J_s&$(xSlbBFAi@V@95(dN(z
z368nrVDt~aV~3zVnUY1v%l?v^s87qIYa^E-G_u$h^8k-jZ~6!yQ&{c-vFS$ens
z-0r?EUflVKa{ZcF7ZBXI%zcSZ7_SGn{5&(95%QMwVHhK)C%IB^f+-myvBjPg{VZo2Sw^I6fSMm?w!PoMW)>FDCRZZsdyG?42-Y?mto3zMG19
zRn{1v{d2;*basRZ6CP^9G)4Qsi6CfLeQVh$@`%%+9$!Edab|m_pMqEaKg%1w*fCu&1gLbKMEMJOahlWb4){qu*-S&
zhy=Xd19N;h(3+*cDCv1ghdT5^sE_h_ye0cR0YoU@N>v8z*`n(&e7wTnvh_O1$6(DD
z+)L<^&G$G6q7KqkEJcyAy$3F1-#`?#os@bpAAW;(tT^Qb-6-!JK^{s8H<*pBxTxG<
zv>gg6yp2xbU*l{yj%?X4=xkS;Df_L>d@qbrUhnUhnUYWw!|#-Lk#O+$>PI2C27vC4
z2T$Hhbo4WXQN~7k+WI`LoV9EOa_EnjNTU^Ui?R2Iw|jEYQ%Y1;laqmN?x-L;OVM%v
zOs{q1;6};Vy-?f8tB!x}j)mW8+Ya0rP+E0{+GT13A4*CS8hA%cj
zP~k7(84zNs2M8FYD%B^>g^o7v@Km5=Xg`)Sf{7)b7(*D{wfiRNhZPhd3I}WgkpNlK
zSr{UHW{;P&L14%dlm%)LTK@$83O9M?!_~YdtbN#}7_{g!ls)^?fi}0Z7<$V|aejQ%
zUBnNH7uK*CQIub{VkjQr4gS*HD#U0nqO008SbL
zk_BR(Crx~~JreWqP*H34O#)KUC9Gqx(i_yGd3-|1dsI_-fDNP=l?}zz=n1zhcNq8J
zNW#wi#QDqojbQ3m)}7;lKFdBztVpV=ex?P(b)MKI{LBlCAL)5Z^wo5R-q=6>br%R#
zwh{bs*hzy^G?tWT>}Sv=`M6OWdnW!Cu#%PZ#zu79sNztcW@ovWs+#GB5^-sJ>9w+m
z13O*{d$VOk@g!Jq`{dtTnmnDkdRzJoiE@P#1f8}z3J+W3FX<`AhUn^#5BMIb7a
z3Wby_Ve8Ma;~P~v`LkOF={#D~>bGF1&s9w>
zjN@fxC`@M)jQyn%!KYwwDKe~5Z2S_Y_5{im!jIOfg-#rO&_h`thG?kRQJ@S_)7*)s
zMgewF4IDjCG1Al}5aVVUjM!d8(5HvKLc`iEvKz4zo-Re1$lS_08%5`f{kYyNa;DU7
zAF^d~Eh#!~nB*fsx&VH6sZU?Of!u+b^hFVDygO1(LFd>
zgK=VS73!8;Q^zjf7$>>=__vmEN>kO@yk(
zSx|dLC`bWW5Snw15Pi}DC!Xlgfx;b5Mg61-HooyH5P+bD-QxzF$0$7{Kcys^LO(6N
z40(v~;V~sYy8Y6|fxw|$VN-aV7S~D~H05xlq8Jqj$p_g+iD5`+t`EubAVdGR
zd-aseO>DJW3~TzrB&?#u0{G}9)bm_)CvnS^>bYEnfnqs`&m1=(4p9=L>*oOF+~i-S
zj&En?x2KMrj)#SD+o37+9^M0zFqWXb!w{+^iR$;WB=%*yTcE24kfA2iZ_5W*=kfG7
z#`Rg=M{w(RMfmOA(~Zca6U8-kLC(4N$B0Q8JM3d_4(7{b4qtvoa{b8=>Su0VYtUp!
z)(gqvJnG=$-%2aJZWFyR!P>SU|CiJoSljF2{mkX}_F{tMSUK^;;o2J|zCrF~KSNCUbJD5vEuwg!|r5Mm3l
zpTe!BFfYFx`r$$Ef(r>HMNi(CncsB{cPWZc14}-Vb5fm?ZchAYp}uzk)JMwVkOU+t
zY7Z5;_gu7WsziLx5>8dz3j5e{t$AG~ZDC+&9VJ_awKbMGGH}{#Tq_#H(YJbF!$nuf
z^?2tu_HaB#Gi*%4ZuV8Jl4wV5d<2|J=^|IS$e!Y)>p92^Xih$yo&CQp?&d%{!yyc&
z;F@DFXxq6iPd4Q6mokHSqvjN_bUx}PD=2qpFTB_3PAcwp=U8w{DhAb}IYNQCRlD(D
zLPk1@1o!ce0l)~AcM8==5W5;q^C26ZIa@05oC=eJNrc`ccyuvU$kR+VgnoR{)3b{$
zz%0ZU2+rxS582W?U;@H50?H5f`a{K}#ACL1fSScj^`FA|I}F2=1;q^TOA$|DGeIHp
z_EP30#lu<#9$ya%4$_mhglE@Ml{P)XC)%W!oQeT_LyAy_3Eff#=X>6T9x7Oil|^e3
zKiO)Di#AAQAN4xLhJU^66xfEHBLe|)AqGY5C!Q4gl04WHCOcmjUn=p^8kp?q
z6P2NBmytz{-fG_{6&Ry}!XQF_JWR@q(7PX~joTQnT+gGJVx9h&I#3A!fpBdl%>ZAC
z5fWB@M2PLF`8KenT*9?9I%(BC+ES6{z+2}J2ph8Kl_7Syu}^BWtt+sv&di{p(wh1}
zI%Z(|o3s@V9wlTa9u49du|c#p#z8e#dn1Z!1BoMqrt6lx_>VAA(*4sDK&vEDL+;g;
zjP}7dVChIRPtuwf*~di%xR3>%Q+qT-KcBogV$K@{{ciGenGB8j*~v_j#-&$&S@#w9
z%8|=P9jVxLFIRPBwOhh#9nO@JH&IQ|_d=QJ-;uHL0d*B>nHgIKC`&NkzFs
z(PAy+cb-U?JmVxbWb7L`OMh|0Q6O~mj=R(D9y}N8D}Ri#Lv8YtqUTQ0
zP)!XeQB9<#)2chmqQCl$5*i8xwn%}_x_7h2NrGBfaWsUx4&=ohl%xX-{
z4RTRe(kA=ZF7OoLTWXALTF}2h7*cDK(JAbm!6Suob2mn8RfQ`oojvGr03D~F=x347
z4W{TBid!LyQ2`Y^_;H2#rrs16=+R<_XJg|kzv<`;5XzbF{gUJ@l<@I9k?%>=5}V6H
zq)eRZ?68A1zd(?XMR|pcbUv7R8a2J0B0QWlKKQ#755^OiQj{Tud!yFl)W0cJxZtZz
zQ=Q49jTt46?}cf#5l9^kd-eqF=*b~{bcR0>_>cAVp>YQmCw4<@%jCB!KGhgX(wSKP
zm$f5=t<-`jh+7>3xwCIx#TjiiQ%5jbL+{@;O0fC-5d{p8E<0!Q124eVh8Khu#N=X+36w~iX@tnTpoo~q-zC3+7RL|SJvp1NP6ALQwMgy=vM4nI%o^kxL7bvR7
z;hPPD8L_5RFF3?S%+AT#A$9buxZh&!PVucxc=yfuvuZ_
z?5S``Hv5Zh&nh%ue|t#Om;gwqz7n^BH25H{^VL)cG1m=_4zLhWKb
zM6E#2f6bigW#)nM7oGK^z&FO8Fz0k;Z(0E*zvo+=Iq%X`)a)$q(+NfP9XAq+P
zb*wC#mMb+mq^Tk|W{dfkwt0t5xXpcf9=}_wvRY^AL{L31YlXJnmOodT<J#F_B(HilE{O@f`;|H46zigQ6uOJe#uj5xD%t4!=
z2MKWKWaDvK?kD1A1Mm}J?o0F_#D5g<#M&Gc|n|gP+^yTt3=^kU6IHMyfj`Z(+MP
z1B#5=8*`49EPq|K_A}AMm})YFSSqu(29cuH73$%_8Va+@Pb!9p>ds7($z2#DozQQP
z)M@-Sv7Q|i#QoYUt$YEI0)V=w6}nyBo2YPk>z+7ZQ>EKE~CEsiXZ0zG~g*o@q_&PFdd$D*2B?$JB5E)5ru|*V=3<_$D&x7fk
z#7qUivS?;dcu(fN@&0ieS`Zyn)>|=8?iw*`uqM&G##-h6@t5{mPFf?DtT>|;Lg+d@
z3GFAbvMyAxK`_wB4eM4oqe~X|yhw&1a>##ASFc0$s?L_B`GGcyKOK|`FO^_VyUW>H
zK68ZLh@^f^8cl^Hw}}Hj6hw5E^ZN}BCA>ZhJ>_a?mONwB`#7|AWWWXI5%z|hC@Uw_
z+Eg!|PoHMjZcSq2Ykv&u82^1{ZPX$O-Uu(q#gxC80>!#k6}w{wN|B-K;Eaef^W!W0HTnw^
zAEKq+T;j}#x*$#jf&$_0e);dELzmlxHV>p%p**61tCgD+T?JYGIy?Tx^slEq>(sStQ||
zRLJjCc0_|y>^R6rI1f8f=yc9k`f{dPt6?Gu8U)dZDe4fYKH<jb
zzJ(2tlycrM9P#>Q&o+e36E7d29WaLvy5xn}<(i_Wzfm${F8n$LY2CZJ(u>lIJEMTp
zg59q!04kU6y>kvmbIMY>%OjW0|7N16qMAFp4s8QPP#-i2D);=w4GEnp3VU>Ko~NHK0FQ>Vn>OxOWsdTVhS<={gKI=>^%E6RIE9
zPa^$7<{-&?%jAau>agpo1HhqVd{>aiA}#4pNj02uzxF3fBN8Oc&>
zkv1*6`aUYt|_DYU7`
zio10DYKYD9j6QaW*Q&DOXQx>Kh$ht{o*L5sb|Y@@WY$6E2Fc1#j)#UXg~avG%9I!u
zLG)$@c?sO`RAR9Pq0%cMCk=2NM}l2wX>Y(4%a4odXhFI2ayk}S;7Z@mLK~Oa<3%ol
zC+VHN0g)p#CNE@JmkvHmLgOrXB#VASCPLh2gF)FOXSR~S;QzxH
zik^5y;xRsJOy=9)fC$^Oy+4O--E6#oCsPEJPY1Y^s~8iIAZAT$eqyN1
z(i)NnS&U{*qqM+V^fT>&Y6@hioF~&H`haqKk9$%RV}WR6S>Rv5t1cSAr+~fNmsE(-
z0IQ3&BGROQ7BQVQa%W>%hQ8{61{DzAi~eKBgW@_^^-FRimXZkC3|i=QVh*)vief2Z
zi+hboKkF%c60BHOJaWz)!%rq^b{MUf5{|c*s54n+GfUmgA`NPYiw#q%(g}Rd8jp<6
zo$@6ul`XmI0YlQ=f9k?Dk3Xz*$v^Wj&)ExwCc|Ai&UYY4Q%k?TZHR)hBpo{e&A|69
z*O|QN(~kX-yaO~Atm{2wq*qFYlG>)yi@^DJRCG;$aCCwXVPmOzp`iKp0D)GT-Bjkk
z{gOv}N-ZPBGBg=7OBKE-enR6CdeBDwQ3h#xw8PYMDMXp0MPz~3l&)XoP9)=LL}Ep0S1UC9#XzmBeE1#A&PGgdTSRZkI-aI5S)CS9
zR91852ASf#!d;Rrr<<{6XRp*F^$t*J5I-wQEO<-PGIwOW(oVM1JXL6e|8ZI`=q@7-
zB-8a`Qb^}Xq)=7zAO2&3lnx%k01G1cFSe}6x`mjI_
z6F5j^cTni;m%(X*S
z(I<>kR+Fx~{mT;3lbNI{sHYNWW#QP9F3H)5OoeoYklBRqXTNaCVCb5u!Nu0a%9e1a
z(vdi%LD0>#pu7ik48#)fKsXybcS@M;VC8joDN8I<2F#+4HQ3SFEcX}}tWK#xp}Y;P
zXN+D$`&m&hC~G@7qjP6)Gm8F}jBR86ISfZFy@5|ZW38ys_NmXolLX-yiJ?T?Frr}G_k+`LqFS7u$88mw4()A$+-&MkZ^xwf>rv
z1({tgEJB?*)=Do72~yDEUXFJ^l6b(L5Ndw$2umc7vbL{iO-0Tj!uY9-KT_HJvLm!&
z&139`SXx+VP%M;^#l-_*g!bpSQz|6kWUpk2-|ioE$9T^dBD;nTG8>TAWhUf4(EwU%
z6|r(R9MAkp-`jKp;06gjfLbUs*lM(QNXy^j`o3V!C8>=26rlhfa}XDV!-p{~K@N0f
z6KEqjh7S~;I2-s)OXve9%bxd6nty^6$nmqd@OM-i>5T$(3CYPNo*x9#C9olxF{14(8C8Y2=i7MVF43QNd=swBZB*;}}g
z*6~BHznl^uSU@<|E)WHCDER)e&q9ECQBwb3XppwA;XYd?QY->n2sj6GAMNAb!^^@|
z?g2`BLS4DXz6@rja3|Vc{|0Yw8q1Ppsmr#=IntBgX?wmu8OH@q#n^DP&mXdO(L-^eIpo>20jlDX{@!lzyK!>(=*VM3B7d&%MS`g35
z0?EN@6lZgrSyxVhl}{#jm2)%RJaI
zctjCzA-X
zDMaOV?KLwE^8D5rwgjM4B7z=lF1@?T$b>#&I=X0tE}4KBK({N7IgxuLmPTE&Bm|vZ
zqfRA7dG{1?A_&`zB0aw(x8@SI=}IAsgeXSZq`fQClSr=guO&3Y#$7m@UN}AqNTME?
zR33<|V6JJjA?sR3{xb%6`yt`gx<}fc3*W<4YaRZ(=K@{#pnGFt
zVJ47U(lphK{3!#hyj!HHicrB(N-rZ@RMVFK!~=?NHKI!9{_UI_qs20qs}c)}gr-BL
zP#Pze7ar*7MB(SmF0gSZBul!=h+xTpTy%dgzTU>Gee87P7mwQ5wn|F}3Lr?u!N*)~
zv8)OBKfZjQ|BP{M0{N4wZxq83w^4k?R$=v|A2Oi^okcZug>j|n7#9YKL<_+b4I1To
zMehequADfH@Nv+s3&EF2M@5q_;7qf={JE#+_70!MyNed8Fh6sWQUpVC{c96Efgjwu
zSo*w`)3N55zGu9b0wYU2Lr#MY64_J$@fcO4{>SR5&t)>=hJ_b==)mLF7!BG^$TT&n*4FC6K30zwiDJ}2V1)Ia%Th!!;JdGGMmfwk{e%a`uz`p|MhjOZerc9#4
zyZ;Q+EG|2D!g(h?_$gIkPkzaDP3HX;P>(W?$)f4N=zZOT38IQ)A0ye*(0EA5;ST<-
z3s))DwzziTFmzIcumA1|^4n>K$?SJjQYEna=YT~>_=y5C!AFnRk)G#rsFeretT1iu
z+dSZvxOB9kT
zr^5$|CYvnj#Z(JRXRL#0-+CQ3KGpdf5dS(28T&
zlGb0U5z7-PEbnylFI|CcDakFlIp_%u{LVEx<`-6e4>Z9{XnxcZAK^RWxp9Zs^j!je
z>$JKCDKlV2B9iFxgsACuDmhYP=5!MQ6^Fk!PLJ|+ddspu2ogn8*2VKX(iyPePec;c
zaZs3`+`BVOhedI%l-I8x4$Za|oPETw9`Rk<&+=p@y}C?iR#91FyNtRpK~KUfNO7zdR`M~V$KPIEu
z5cs_(KXc@~qOjgP{;gZ{bTgcqd4-b~8^u|O@flN(f<0<0sRr3D`y%tWd@znOFS^l5
zk7ur_1w{!ij#cy@e+k7f)3C2A6!KWZ_$(}ChC@_7xI-$afu>=~{d+mmxv~j-x`9Kw
zb%M&K`qGwFWj|jfx|RQPasr;!?@>OGy3<*UAnVyj$fc3uM$>b*f`vQl