mirror of
https://github.com/anchore/syft.git
synced 2026-02-13 19:16:43 +01:00
feat: Add license parsing for java (#1385)
This commit is contained in:
parent
4ffbeeeea5
commit
82f32c7301
@ -181,6 +181,7 @@ func (j *archiveParser) discoverMainPackage() (*pkg.Package, error) {
|
|||||||
return &pkg.Package{
|
return &pkg.Package{
|
||||||
Name: selectName(manifest, j.fileInfo),
|
Name: selectName(manifest, j.fileInfo),
|
||||||
Version: selectVersion(manifest, j.fileInfo),
|
Version: selectVersion(manifest, j.fileInfo),
|
||||||
|
Licenses: selectLicense(manifest),
|
||||||
Language: pkg.Java,
|
Language: pkg.Java,
|
||||||
Locations: source.NewLocationSet(j.location),
|
Locations: source.NewLocationSet(j.location),
|
||||||
Type: j.fileInfo.pkgType(),
|
Type: j.fileInfo.pkgType(),
|
||||||
|
|||||||
@ -99,6 +99,7 @@ func TestParseJar(t *testing.T) {
|
|||||||
Name: "example-jenkins-plugin",
|
Name: "example-jenkins-plugin",
|
||||||
Version: "1.0-SNAPSHOT",
|
Version: "1.0-SNAPSHOT",
|
||||||
PURL: "pkg:maven/io.jenkins.plugins/example-jenkins-plugin@1.0-SNAPSHOT",
|
PURL: "pkg:maven/io.jenkins.plugins/example-jenkins-plugin@1.0-SNAPSHOT",
|
||||||
|
Licenses: []string{"MIT License"},
|
||||||
Language: pkg.Java,
|
Language: pkg.Java,
|
||||||
Type: pkg.JenkinsPluginPkg,
|
Type: pkg.JenkinsPluginPkg,
|
||||||
MetadataType: pkg.JavaMetadataType,
|
MetadataType: pkg.JavaMetadataType,
|
||||||
@ -149,6 +150,7 @@ func TestParseJar(t *testing.T) {
|
|||||||
Name: "example-java-app-gradle",
|
Name: "example-java-app-gradle",
|
||||||
Version: "0.1.0",
|
Version: "0.1.0",
|
||||||
PURL: "pkg:maven/example-java-app-gradle/example-java-app-gradle@0.1.0",
|
PURL: "pkg:maven/example-java-app-gradle/example-java-app-gradle@0.1.0",
|
||||||
|
Licenses: []string{},
|
||||||
Language: pkg.Java,
|
Language: pkg.Java,
|
||||||
Type: pkg.JavaPkg,
|
Type: pkg.JavaPkg,
|
||||||
MetadataType: pkg.JavaMetadataType,
|
MetadataType: pkg.JavaMetadataType,
|
||||||
@ -174,6 +176,7 @@ func TestParseJar(t *testing.T) {
|
|||||||
Name: "example-java-app-maven",
|
Name: "example-java-app-maven",
|
||||||
Version: "0.1.0",
|
Version: "0.1.0",
|
||||||
PURL: "pkg:maven/org.anchore/example-java-app-maven@0.1.0",
|
PURL: "pkg:maven/org.anchore/example-java-app-maven@0.1.0",
|
||||||
|
Licenses: []string{},
|
||||||
Language: pkg.Java,
|
Language: pkg.Java,
|
||||||
Type: pkg.JavaPkg,
|
Type: pkg.JavaPkg,
|
||||||
MetadataType: pkg.JavaMetadataType,
|
MetadataType: pkg.JavaMetadataType,
|
||||||
|
|||||||
@ -157,6 +157,26 @@ func selectVersion(manifest *pkg.JavaManifest, filenameObj archiveFilename) stri
|
|||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func selectLicense(manifest *pkg.JavaManifest) []string {
|
||||||
|
result := []string{}
|
||||||
|
if manifest == nil {
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
fieldNames := []string{
|
||||||
|
"Bundle-License",
|
||||||
|
"Plugin-License-Name",
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, fieldName := range fieldNames {
|
||||||
|
if v := fieldValueFromManifest(*manifest, fieldName); v != "" {
|
||||||
|
result = append(result, v)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
func fieldValueFromManifest(manifest pkg.JavaManifest, fieldName string) string {
|
func fieldValueFromManifest(manifest pkg.JavaManifest, fieldName string) string {
|
||||||
if value := manifest.Main[fieldName]; value != "" {
|
if value := manifest.Main[fieldName]; value != "" {
|
||||||
return value
|
return value
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user