From 8bcba7d83022c967692db9feecfd370a4ec1afbe Mon Sep 17 00:00:00 2001 From: Alex Goodman Date: Wed, 28 Oct 2020 15:23:56 -0400 Subject: [PATCH] update json schema and test for java virtualPath Signed-off-by: Alex Goodman --- schema/json/schema.json | 25 ++++++++++++++-------- syft/cataloger/java/archive_parser_test.go | 4 ++++ syft/pkg/java_metadata.go | 2 +- 3 files changed, 21 insertions(+), 10 deletions(-) diff --git a/schema/json/schema.json b/schema/json/schema.json index 0b32b6a65..2e62406e8 100644 --- a/schema/json/schema.json +++ b/schema/json/schema.json @@ -376,9 +376,6 @@ }, "pomProperties": { "properties": { - "Path": { - "type": "string" - }, "artifactId": { "type": "string" }, @@ -391,25 +388,32 @@ "name": { "type": "string" }, + "path": { + "type": "string" + }, "version": { "type": "string" } }, "required": [ - "Path", "artifactId", "extraFields", "groupId", "name", + "path", "version" ], "type": "object" + }, + "virtualPath": { + "type": "string" } }, "required": [ "manifest", "parentPackage", - "pomProperties" + "pomProperties", + "virtualPath" ], "type": "object" }, @@ -446,9 +450,6 @@ }, "pomProperties": { "properties": { - "Path": { - "type": "string" - }, "artifactId": { "type": "string" }, @@ -461,16 +462,19 @@ "name": { "type": "string" }, + "path": { + "type": "string" + }, "version": { "type": "string" } }, "required": [ - "Path", "artifactId", "extraFields", "groupId", "name", + "path", "version" ], "type": "object" @@ -510,6 +514,9 @@ }, "version": { "type": "string" + }, + "virtualPath": { + "type": "string" } }, "type": "object" diff --git a/syft/cataloger/java/archive_parser_test.go b/syft/cataloger/java/archive_parser_test.go index bd402af77..c5f526bd7 100644 --- a/syft/cataloger/java/archive_parser_test.go +++ b/syft/cataloger/java/archive_parser_test.go @@ -143,6 +143,7 @@ func TestParseJar(t *testing.T) { Type: pkg.JenkinsPluginPkg, MetadataType: pkg.JavaMetadataType, Metadata: pkg.JavaMetadata{ + VirtualPath: "test-fixtures/java-builds/packages/example-jenkins-plugin.hpi", Manifest: &pkg.JavaManifest{ ManifestVersion: "1.0", SpecTitle: "The Jenkins Plugins Parent POM Project", @@ -188,6 +189,7 @@ func TestParseJar(t *testing.T) { Type: pkg.JavaPkg, MetadataType: pkg.JavaMetadataType, Metadata: pkg.JavaMetadata{ + VirtualPath: "test-fixtures/java-builds/packages/example-java-app-gradle-0.1.0.jar", Manifest: &pkg.JavaManifest{ ManifestVersion: "1.0", }, @@ -208,6 +210,7 @@ func TestParseJar(t *testing.T) { Type: pkg.JavaPkg, MetadataType: pkg.JavaMetadataType, Metadata: pkg.JavaMetadata{ + VirtualPath: "test-fixtures/java-builds/packages/example-java-app-maven-0.1.0.jar", Manifest: &pkg.JavaManifest{ ManifestVersion: "1.0", Extra: map[string]string{ @@ -233,6 +236,7 @@ func TestParseJar(t *testing.T) { Type: pkg.JavaPkg, MetadataType: pkg.JavaMetadataType, Metadata: pkg.JavaMetadata{ + VirtualPath: "test-fixtures/java-builds/packages/example-java-app-maven-0.1.0.jar", PomProperties: &pkg.PomProperties{ Path: "META-INF/maven/joda-time/joda-time/pom.properties", GroupID: "joda-time", diff --git a/syft/pkg/java_metadata.go b/syft/pkg/java_metadata.go index 1ba7972ae..4cc9f842c 100644 --- a/syft/pkg/java_metadata.go +++ b/syft/pkg/java_metadata.go @@ -4,7 +4,7 @@ import "github.com/package-url/packageurl-go" // JavaMetadata encapsulates all Java ecosystem metadata for a package as well as an (optional) parent relationship. type JavaMetadata struct { - VirtualPath string `json:"virtual-path"` + VirtualPath string `json:"virtualPath"` Manifest *JavaManifest `mapstructure:"Manifest" json:"manifest"` PomProperties *PomProperties `mapstructure:"PomProperties" json:"pomProperties"` Parent *Package `json:"parentPackage"` // TODO: should this be included in the json output?