From 76c8f24090c23ab66a1b8bfd89818244955ee5c9 Mon Sep 17 00:00:00 2001 From: Alex Goodman Date: Wed, 28 Oct 2020 13:53:44 -0400 Subject: [PATCH] add java virtual path Signed-off-by: Alex Goodman --- syft/cataloger/java/archive_parser.go | 4 +++- syft/pkg/java_metadata.go | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/syft/cataloger/java/archive_parser.go b/syft/cataloger/java/archive_parser.go index b64c43adf..a433308c6 100644 --- a/syft/cataloger/java/archive_parser.go +++ b/syft/cataloger/java/archive_parser.go @@ -148,7 +148,8 @@ func (j *archiveParser) discoverMainPackage() (*pkg.Package, error) { Type: pkg.JavaPkg, MetadataType: pkg.JavaMetadataType, Metadata: pkg.JavaMetadata{ - Manifest: manifest, + VirtualPath: j.virtualPath, + Manifest: manifest, }, }, nil } @@ -184,6 +185,7 @@ func (j *archiveParser) discoverPkgsFromPomProperties(parentPkg *pkg.Package) ([ Type: pkg.JavaPkg, MetadataType: pkg.JavaMetadataType, Metadata: pkg.JavaMetadata{ + VirtualPath: j.virtualPath, PomProperties: propsObj, Parent: parentPkg, }, diff --git a/syft/pkg/java_metadata.go b/syft/pkg/java_metadata.go index 01372ca68..1ba7972ae 100644 --- a/syft/pkg/java_metadata.go +++ b/syft/pkg/java_metadata.go @@ -4,6 +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"` 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? @@ -11,7 +12,7 @@ type JavaMetadata struct { // PomProperties represents the fields of interest extracted from a Java archive's pom.xml file. type PomProperties struct { - Path string + Path string `mapstructure:"path" json:"path"` Name string `mapstructure:"name" json:"name"` GroupID string `mapstructure:"groupId" json:"groupId"` ArtifactID string `mapstructure:"artifactId" json:"artifactId"`