diff --git a/analyzer/src/main/resources/META-INF/services/org.ossreviewtoolkit.analyzer.PackageManagerFactory b/analyzer/src/main/resources/META-INF/services/org.ossreviewtoolkit.analyzer.PackageManagerFactory index 66a24fce8504..36a5197e0ad5 100644 --- a/analyzer/src/main/resources/META-INF/services/org.ossreviewtoolkit.analyzer.PackageManagerFactory +++ b/analyzer/src/main/resources/META-INF/services/org.ossreviewtoolkit.analyzer.PackageManagerFactory @@ -1,4 +1,3 @@ -org.ossreviewtoolkit.analyzer.managers.Cargo$Factory org.ossreviewtoolkit.analyzer.managers.Carthage$Factory org.ossreviewtoolkit.analyzer.managers.CocoaPods$Factory org.ossreviewtoolkit.analyzer.managers.Composer$Factory diff --git a/plugins/package-managers/build.gradle.kts b/plugins/package-managers/build.gradle.kts index 9ab1e92ce214..575ae188087f 100644 --- a/plugins/package-managers/build.gradle.kts +++ b/plugins/package-managers/build.gradle.kts @@ -30,6 +30,7 @@ javaPlatform { dependencies { api(project(":plugins:package-managers:bower-package-manager")) api(project(":plugins:package-managers:bundler-package-manager")) + api(project(":plugins:package-managers:cargo-package-manager")) api(project(":plugins:package-managers:gradle-model")) api(project(":plugins:package-managers:gradle-package-manager")) api(project(":plugins:package-managers:pub-package-manager")) diff --git a/plugins/package-managers/cargo/build.gradle.kts b/plugins/package-managers/cargo/build.gradle.kts new file mode 100644 index 000000000000..310a7d0d4e0c --- /dev/null +++ b/plugins/package-managers/cargo/build.gradle.kts @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2023 The ORT Project Authors (see ) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + * License-Filename: LICENSE + */ + +plugins { + // Apply core plugins. + `java-library` +} + +dependencies { + api(project(":analyzer")) + + implementation(project(":downloader")) + + implementation(libs.toml4j) + constraints { + implementation("com.google.code.gson:gson:2.10.1") { + because("Earlier versions have vulnerabilities.") + } + } + + funTestImplementation(testFixtures(project(":analyzer"))) +} diff --git a/analyzer/src/funTest/assets/projects/synthetic/cargo-expected-output.yml b/plugins/package-managers/cargo/src/funTest/assets/projects/synthetic/cargo-expected-output.yml similarity index 100% rename from analyzer/src/funTest/assets/projects/synthetic/cargo-expected-output.yml rename to plugins/package-managers/cargo/src/funTest/assets/projects/synthetic/cargo-expected-output.yml diff --git a/analyzer/src/funTest/assets/projects/synthetic/cargo-subcrate-client-expected-output.yml b/plugins/package-managers/cargo/src/funTest/assets/projects/synthetic/cargo-subcrate-client-expected-output.yml similarity index 100% rename from analyzer/src/funTest/assets/projects/synthetic/cargo-subcrate-client-expected-output.yml rename to plugins/package-managers/cargo/src/funTest/assets/projects/synthetic/cargo-subcrate-client-expected-output.yml diff --git a/analyzer/src/funTest/assets/projects/synthetic/cargo-subcrate-integration-expected-output.yml b/plugins/package-managers/cargo/src/funTest/assets/projects/synthetic/cargo-subcrate-integration-expected-output.yml similarity index 100% rename from analyzer/src/funTest/assets/projects/synthetic/cargo-subcrate-integration-expected-output.yml rename to plugins/package-managers/cargo/src/funTest/assets/projects/synthetic/cargo-subcrate-integration-expected-output.yml diff --git a/analyzer/src/funTest/assets/projects/synthetic/cargo-subcrate-lib-expected-output.yml b/plugins/package-managers/cargo/src/funTest/assets/projects/synthetic/cargo-subcrate-lib-expected-output.yml similarity index 100% rename from analyzer/src/funTest/assets/projects/synthetic/cargo-subcrate-lib-expected-output.yml rename to plugins/package-managers/cargo/src/funTest/assets/projects/synthetic/cargo-subcrate-lib-expected-output.yml diff --git a/analyzer/src/funTest/assets/projects/synthetic/cargo-subcrate/.gitignore b/plugins/package-managers/cargo/src/funTest/assets/projects/synthetic/cargo-subcrate/.gitignore similarity index 100% rename from analyzer/src/funTest/assets/projects/synthetic/cargo-subcrate/.gitignore rename to plugins/package-managers/cargo/src/funTest/assets/projects/synthetic/cargo-subcrate/.gitignore diff --git a/analyzer/src/funTest/assets/projects/synthetic/cargo-subcrate/Cargo.lock b/plugins/package-managers/cargo/src/funTest/assets/projects/synthetic/cargo-subcrate/Cargo.lock similarity index 100% rename from analyzer/src/funTest/assets/projects/synthetic/cargo-subcrate/Cargo.lock rename to plugins/package-managers/cargo/src/funTest/assets/projects/synthetic/cargo-subcrate/Cargo.lock diff --git a/analyzer/src/funTest/assets/projects/synthetic/cargo-subcrate/Cargo.toml b/plugins/package-managers/cargo/src/funTest/assets/projects/synthetic/cargo-subcrate/Cargo.toml similarity index 100% rename from analyzer/src/funTest/assets/projects/synthetic/cargo-subcrate/Cargo.toml rename to plugins/package-managers/cargo/src/funTest/assets/projects/synthetic/cargo-subcrate/Cargo.toml diff --git a/analyzer/src/funTest/assets/projects/synthetic/cargo-subcrate/client/Cargo.lock b/plugins/package-managers/cargo/src/funTest/assets/projects/synthetic/cargo-subcrate/client/Cargo.lock similarity index 100% rename from analyzer/src/funTest/assets/projects/synthetic/cargo-subcrate/client/Cargo.lock rename to plugins/package-managers/cargo/src/funTest/assets/projects/synthetic/cargo-subcrate/client/Cargo.lock diff --git a/analyzer/src/funTest/assets/projects/synthetic/cargo-subcrate/client/Cargo.toml b/plugins/package-managers/cargo/src/funTest/assets/projects/synthetic/cargo-subcrate/client/Cargo.toml similarity index 100% rename from analyzer/src/funTest/assets/projects/synthetic/cargo-subcrate/client/Cargo.toml rename to plugins/package-managers/cargo/src/funTest/assets/projects/synthetic/cargo-subcrate/client/Cargo.toml diff --git a/analyzer/src/funTest/assets/projects/synthetic/cargo-subcrate/client/src/main.rs b/plugins/package-managers/cargo/src/funTest/assets/projects/synthetic/cargo-subcrate/client/src/main.rs similarity index 100% rename from analyzer/src/funTest/assets/projects/synthetic/cargo-subcrate/client/src/main.rs rename to plugins/package-managers/cargo/src/funTest/assets/projects/synthetic/cargo-subcrate/client/src/main.rs diff --git a/analyzer/src/funTest/assets/projects/synthetic/cargo-subcrate/integration/Cargo.lock b/plugins/package-managers/cargo/src/funTest/assets/projects/synthetic/cargo-subcrate/integration/Cargo.lock similarity index 100% rename from analyzer/src/funTest/assets/projects/synthetic/cargo-subcrate/integration/Cargo.lock rename to plugins/package-managers/cargo/src/funTest/assets/projects/synthetic/cargo-subcrate/integration/Cargo.lock diff --git a/analyzer/src/funTest/assets/projects/synthetic/cargo-subcrate/integration/Cargo.toml b/plugins/package-managers/cargo/src/funTest/assets/projects/synthetic/cargo-subcrate/integration/Cargo.toml similarity index 100% rename from analyzer/src/funTest/assets/projects/synthetic/cargo-subcrate/integration/Cargo.toml rename to plugins/package-managers/cargo/src/funTest/assets/projects/synthetic/cargo-subcrate/integration/Cargo.toml diff --git a/analyzer/src/funTest/assets/projects/synthetic/cargo-subcrate/integration/src/lib.rs b/plugins/package-managers/cargo/src/funTest/assets/projects/synthetic/cargo-subcrate/integration/src/lib.rs similarity index 100% rename from analyzer/src/funTest/assets/projects/synthetic/cargo-subcrate/integration/src/lib.rs rename to plugins/package-managers/cargo/src/funTest/assets/projects/synthetic/cargo-subcrate/integration/src/lib.rs diff --git a/analyzer/src/funTest/assets/projects/synthetic/cargo-subcrate/src/lib.rs b/plugins/package-managers/cargo/src/funTest/assets/projects/synthetic/cargo-subcrate/src/lib.rs similarity index 100% rename from analyzer/src/funTest/assets/projects/synthetic/cargo-subcrate/src/lib.rs rename to plugins/package-managers/cargo/src/funTest/assets/projects/synthetic/cargo-subcrate/src/lib.rs diff --git a/analyzer/src/funTest/assets/projects/synthetic/cargo/.gitignore b/plugins/package-managers/cargo/src/funTest/assets/projects/synthetic/cargo/.gitignore similarity index 100% rename from analyzer/src/funTest/assets/projects/synthetic/cargo/.gitignore rename to plugins/package-managers/cargo/src/funTest/assets/projects/synthetic/cargo/.gitignore diff --git a/analyzer/src/funTest/assets/projects/synthetic/cargo/Cargo.lock b/plugins/package-managers/cargo/src/funTest/assets/projects/synthetic/cargo/Cargo.lock similarity index 100% rename from analyzer/src/funTest/assets/projects/synthetic/cargo/Cargo.lock rename to plugins/package-managers/cargo/src/funTest/assets/projects/synthetic/cargo/Cargo.lock diff --git a/analyzer/src/funTest/assets/projects/synthetic/cargo/Cargo.toml b/plugins/package-managers/cargo/src/funTest/assets/projects/synthetic/cargo/Cargo.toml similarity index 100% rename from analyzer/src/funTest/assets/projects/synthetic/cargo/Cargo.toml rename to plugins/package-managers/cargo/src/funTest/assets/projects/synthetic/cargo/Cargo.toml diff --git a/analyzer/src/funTest/assets/projects/synthetic/cargo/src/lib.rs b/plugins/package-managers/cargo/src/funTest/assets/projects/synthetic/cargo/src/lib.rs similarity index 100% rename from analyzer/src/funTest/assets/projects/synthetic/cargo/src/lib.rs rename to plugins/package-managers/cargo/src/funTest/assets/projects/synthetic/cargo/src/lib.rs diff --git a/analyzer/src/funTest/kotlin/managers/CargoFunTest.kt b/plugins/package-managers/cargo/src/funTest/kotlin/CargoFunTest.kt similarity index 94% rename from analyzer/src/funTest/kotlin/managers/CargoFunTest.kt rename to plugins/package-managers/cargo/src/funTest/kotlin/CargoFunTest.kt index fe32a4b88208..b685c06aabf2 100644 --- a/analyzer/src/funTest/kotlin/managers/CargoFunTest.kt +++ b/plugins/package-managers/cargo/src/funTest/kotlin/CargoFunTest.kt @@ -17,11 +17,12 @@ * License-Filename: LICENSE */ -package org.ossreviewtoolkit.analyzer.managers +package org.ossreviewtoolkit.plugins.packagemanagers.cargo import io.kotest.core.spec.style.StringSpec import io.kotest.matchers.shouldBe +import org.ossreviewtoolkit.analyzer.managers.resolveSingleProject import org.ossreviewtoolkit.downloader.VersionControlSystem import org.ossreviewtoolkit.model.config.AnalyzerConfiguration import org.ossreviewtoolkit.model.config.RepositoryConfiguration diff --git a/analyzer/src/funTest/kotlin/managers/CargoSubcrateFunTest.kt b/plugins/package-managers/cargo/src/funTest/kotlin/CargoSubcrateFunTest.kt similarity index 96% rename from analyzer/src/funTest/kotlin/managers/CargoSubcrateFunTest.kt rename to plugins/package-managers/cargo/src/funTest/kotlin/CargoSubcrateFunTest.kt index 9fc11502be37..59778617f83f 100644 --- a/analyzer/src/funTest/kotlin/managers/CargoSubcrateFunTest.kt +++ b/plugins/package-managers/cargo/src/funTest/kotlin/CargoSubcrateFunTest.kt @@ -17,11 +17,12 @@ * License-Filename: LICENSE */ -package org.ossreviewtoolkit.analyzer.managers +package org.ossreviewtoolkit.plugins.packagemanagers.cargo import io.kotest.core.spec.style.StringSpec import io.kotest.matchers.shouldBe +import org.ossreviewtoolkit.analyzer.managers.resolveSingleProject import org.ossreviewtoolkit.downloader.VersionControlSystem import org.ossreviewtoolkit.model.config.AnalyzerConfiguration import org.ossreviewtoolkit.model.config.RepositoryConfiguration diff --git a/analyzer/src/main/kotlin/managers/Cargo.kt b/plugins/package-managers/cargo/src/main/kotlin/Cargo.kt similarity index 99% rename from analyzer/src/main/kotlin/managers/Cargo.kt rename to plugins/package-managers/cargo/src/main/kotlin/Cargo.kt index cf8aea58065e..9068f6ccbdac 100644 --- a/analyzer/src/main/kotlin/managers/Cargo.kt +++ b/plugins/package-managers/cargo/src/main/kotlin/Cargo.kt @@ -19,7 +19,7 @@ @file:Suppress("TooManyFunctions") -package org.ossreviewtoolkit.analyzer.managers +package org.ossreviewtoolkit.plugins.packagemanagers.cargo import com.fasterxml.jackson.databind.JsonNode diff --git a/plugins/package-managers/cargo/src/main/resources/META-INF/services/org.ossreviewtoolkit.analyzer.PackageManagerFactory b/plugins/package-managers/cargo/src/main/resources/META-INF/services/org.ossreviewtoolkit.analyzer.PackageManagerFactory new file mode 100644 index 000000000000..6f780befa0d3 --- /dev/null +++ b/plugins/package-managers/cargo/src/main/resources/META-INF/services/org.ossreviewtoolkit.analyzer.PackageManagerFactory @@ -0,0 +1 @@ +org.ossreviewtoolkit.plugins.packagemanagers.cargo.Cargo$Factory diff --git a/settings.gradle.kts b/settings.gradle.kts index ce92918100ed..551ad2576c41 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -47,6 +47,7 @@ include(":plugins:package-curation-providers:sw360") include(":plugins:package-managers") include(":plugins:package-managers:bower") include(":plugins:package-managers:bundler") +include(":plugins:package-managers:cargo") include(":plugins:package-managers:gradle") include(":plugins:package-managers:gradle-model") include(":plugins:package-managers:pub") @@ -77,6 +78,7 @@ project(":plugins:package-curation-providers:sw360").name = "sw360-package-curat project(":plugins:package-managers:bower").name = "bower-package-manager" project(":plugins:package-managers:bundler").name = "bundler-package-manager" +project(":plugins:package-managers:cargo").name = "cargo-package-manager" project(":plugins:package-managers:gradle").name = "gradle-package-manager" project(":plugins:package-managers:pub").name = "pub-package-manager" project(":plugins:package-managers:python").name = "python-package-manager"