This is an automated email from the ASF dual-hosted git repository.

kezhenxu94 pushed a commit to branch fix/dep/license
in repository https://gitbox.apache.org/repos/asf/skywalking-eyes.git

commit 942663bdbb89eeddeb00cbe110f05fa48a46562e
Author: kezhenxu94 <[email protected]>
AuthorDate: Wed May 18 09:00:08 2022 +0000

    dep: short circuit if user declare dep license
---
 .licenserc.yaml      |  8 ++++----
 pkg/deps/golang.go   | 50 +++++++++++++++++++++++++-------------------------
 pkg/deps/jar.go      | 20 +++++++-------------
 pkg/deps/jar_test.go |  6 +++---
 pkg/deps/maven.go    | 44 +++++++++++++++++++++++++-------------------
 5 files changed, 64 insertions(+), 64 deletions(-)

diff --git a/.licenserc.yaml b/.licenserc.yaml
index c2248d5..60898d9 100644
--- a/.licenserc.yaml
+++ b/.licenserc.yaml
@@ -27,9 +27,9 @@ header: # `header` section is configurations for source codes 
license header.
       to you 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
-    
+
           http://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
@@ -46,9 +46,9 @@ header: # `header` section is configurations for source codes 
license header.
       to you 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
-    
+
           http://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
diff --git a/pkg/deps/golang.go b/pkg/deps/golang.go
index a65c20c..62164a8 100644
--- a/pkg/deps/golang.go
+++ b/pkg/deps/golang.go
@@ -84,28 +84,34 @@ func (resolver *GoModResolver) Resolve(goModFile string, 
licenses []*ConfigDepLi
 // ResolvePackages resolves the licenses of the given packages.
 func (resolver *GoModResolver) ResolvePackages(modules []*packages.Module, 
licenses []*ConfigDepLicense, report *Report) error {
        for _, module := range modules {
-               var decalreLicense *ConfigDepLicense
-               for _, l := range licenses {
-                       if l.Name == module.Path && l.Version == module.Version 
{
-                               decalreLicense = l
+               func() {
+                       for _, l := range licenses {
+                               if l.Name == module.Path && l.Version == 
module.Version {
+                                       report.Resolve(&Result{
+                                               Dependency:    module.Path,
+                                               LicenseSpdxID: l.License,
+                                               Version:       module.Version,
+                                       })
+                                       return
+                               }
                        }
-               }
-               err := resolver.ResolvePackageLicense(module, decalreLicense, 
report)
-               if err != nil {
-                       logger.Log.Warnf("Failed to resolve the license of 
<%s>: %v\n", module.Path, err)
-                       report.Skip(&Result{
-                               Dependency:    module.Path,
-                               LicenseSpdxID: Unknown,
-                               Version:       module.Version,
-                       })
-               }
+                       err := resolver.ResolvePackageLicense(module, report)
+                       if err != nil {
+                               logger.Log.Warnf("Failed to resolve the license 
of <%s@%s>: %v\n", module.Path, module.Version, err)
+                               report.Skip(&Result{
+                                       Dependency:    module.Path,
+                                       LicenseSpdxID: Unknown,
+                                       Version:       module.Version,
+                               })
+                       }
+               }()
        }
        return nil
 }
 
 var possibleLicenseFileName = 
regexp.MustCompile(`(?i)^LICENSE|LICENCE(\.txt)?|COPYING(\.txt)?$`)
 
-func (resolver *GoModResolver) ResolvePackageLicense(module *packages.Module, 
declareLicense *ConfigDepLicense, report *Report) error {
+func (resolver *GoModResolver) ResolvePackageLicense(module *packages.Module, 
report *Report) error {
        dir := module.Dir
 
        for {
@@ -123,22 +129,16 @@ func (resolver *GoModResolver) 
ResolvePackageLicense(module *packages.Module, de
                        if err != nil {
                                return err
                        }
-                       var licenseID string
-                       if declareLicense != nil {
-                               licenseID = declareLicense.License
-                       } else {
-                               identifier, err := 
license.Identify(module.Path, string(content))
-                               if err != nil {
-                                       return err
-                               }
-                               licenseID = identifier
+                       identifier, err := license.Identify(module.Path, 
string(content))
+                       if err != nil {
+                               return err
                        }
 
                        report.Resolve(&Result{
                                Dependency:      module.Path,
                                LicenseFilePath: licenseFilePath,
                                LicenseContent:  string(content),
-                               LicenseSpdxID:   licenseID,
+                               LicenseSpdxID:   identifier,
                                Version:         module.Version,
                        })
                        return nil
diff --git a/pkg/deps/jar.go b/pkg/deps/jar.go
index 0121da7..fada99c 100644
--- a/pkg/deps/jar.go
+++ b/pkg/deps/jar.go
@@ -37,7 +37,7 @@ func (resolver *JarResolver) CanResolve(jarFile string) bool {
        return filepath.Ext(jarFile) == ".jar"
 }
 
-func (resolver *JarResolver) Resolve(jarFile string, licenses 
[]*ConfigDepLicense, report *Report) error {
+func (resolver *JarResolver) Resolve(jarFile string, report *Report) error {
        state := NotFound
        if err := resolver.ResolveJar(&state, jarFile, Unknown, report); err != 
nil {
                dep := filepath.Base(jarFile)
@@ -76,7 +76,7 @@ func (resolver *JarResolver) ResolveJar(state *State, 
jarFile, version string, r
                                return err
                        }
 
-                       return resolver.IdentifyLicense(jarFile, dep, 
buf.String(), version, nil, report)
+                       return resolver.IdentifyLicense(jarFile, dep, 
buf.String(), version, report)
                }
        }
 
@@ -122,23 +122,17 @@ func (resolver *JarResolver) ReadFileFromZip(archiveFile 
*zip.File) (*bytes.Buff
        return buf, nil
 }
 
-func (resolver *JarResolver) IdentifyLicense(path, dep, content, version 
string, declareLicense *ConfigDepLicense, report *Report) error {
-       var licenseID string
-       if declareLicense != nil {
-               licenseID = declareLicense.License
-       } else {
-               identifier, err := license.Identify(path, content)
-               if err != nil {
-                       return err
-               }
-               licenseID = identifier
+func (resolver *JarResolver) IdentifyLicense(path, dep, content, version 
string, report *Report) error {
+       identifier, err := license.Identify(path, content)
+       if err != nil {
+               return err
        }
 
        report.Resolve(&Result{
                Dependency:      dep,
                LicenseFilePath: path,
                LicenseContent:  content,
-               LicenseSpdxID:   licenseID,
+               LicenseSpdxID:   identifier,
                Version:         version,
        })
        return nil
diff --git a/pkg/deps/jar_test.go b/pkg/deps/jar_test.go
index 6215685..8b18b43 100644
--- a/pkg/deps/jar_test.go
+++ b/pkg/deps/jar_test.go
@@ -96,11 +96,11 @@ func TestResolveJar(t *testing.T) {
        <project xmlns="http://maven.apache.org/POM/4.0.0";
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
                <modelVersion>4.0.0</modelVersion>
-       
+
                <groupId>apache</groupId>
                <artifactId>skywalking-eyes</artifactId>
                <version>1.0</version>
-       
+
                <dependencies>
                        <!-- https://mvnrepository.com/artifact/junit/junit -->
                        <dependency>
@@ -132,7 +132,7 @@ func TestResolveJar(t *testing.T) {
                report := deps.Report{}
                for _, jar := range jars {
                        if resolver.CanResolve(jar) {
-                               if err := resolver.Resolve(jar, nil, &report); 
err != nil {
+                               if err := resolver.Resolve(jar, &report); err 
!= nil {
                                        t.Error(err)
                                        return
                                }
diff --git a/pkg/deps/maven.go b/pkg/deps/maven.go
index 28d1ce3..3d74d41 100644
--- a/pkg/deps/maven.go
+++ b/pkg/deps/maven.go
@@ -144,38 +144,44 @@ func (resolver *MavenPomResolver) LoadDependencies() 
([]*Dependency, error) {
 // ResolveDependencies resolves the licenses of the given dependencies
 func (resolver *MavenPomResolver) ResolveDependencies(deps []*Dependency, 
licenses []*ConfigDepLicense, report *Report) error {
        for _, dep := range deps {
-               state := NotFound
-               var declareLicense *ConfigDepLicense
-               for _, l := range licenses {
-                       if l.Name == fmt.Sprintf("%s:%s", dep.GroupID, 
dep.ArtifactID) && l.Version == dep.Version {
-                               declareLicense = l
+               func() {
+                       for _, l := range licenses {
+                               if l.Name == fmt.Sprintf("%s:%s", dep.GroupID, 
dep.ArtifactID) && l.Version == dep.Version {
+                                       report.Resolve(&Result{
+                                               Dependency:    dep.Jar(),
+                                               LicenseSpdxID: l.License,
+                                               Version:       dep.Version,
+                                       })
+                                       return
+                               }
                        }
-               }
-               err := resolver.ResolveLicense(&state, dep, declareLicense, 
report)
-               if err != nil {
-                       logger.Log.Warnf("Failed to resolve the license of 
<%s>: %v\n", dep.Jar(), state.String())
-                       report.Skip(&Result{
-                               Dependency:    dep.Jar(),
-                               LicenseSpdxID: Unknown,
-                               Version:       dep.Version,
-                       })
-               }
+                       state := NotFound
+                       err := resolver.ResolveLicense(&state, dep, report)
+                       if err != nil {
+                               logger.Log.Warnf("Failed to resolve the license 
of <%s>: %v\n", dep.Jar(), state.String())
+                               report.Skip(&Result{
+                                       Dependency:    dep.Jar(),
+                                       LicenseSpdxID: Unknown,
+                                       Version:       dep.Version,
+                               })
+                       }
+               }()
        }
        return nil
 }
 
 // ResolveLicense search all possible locations of the license, such as pom 
file, jar package
-func (resolver *MavenPomResolver) ResolveLicense(state *State, dep 
*Dependency, declareLicense *ConfigDepLicense, report *Report) error {
+func (resolver *MavenPomResolver) ResolveLicense(state *State, dep 
*Dependency, report *Report) error {
        err := resolver.ResolveJar(state, filepath.Join(resolver.repo, 
dep.Path(), dep.Jar()), dep.Version, report)
        if err == nil {
                return nil
        }
 
-       return resolver.ResolveLicenseFromPom(state, dep, declareLicense, 
report)
+       return resolver.ResolveLicenseFromPom(state, dep, report)
 }
 
 // ResolveLicenseFromPom search for license in the pom file, which may appear 
in the header comments or in license element of xml
-func (resolver *MavenPomResolver) ResolveLicenseFromPom(state *State, dep 
*Dependency, declareLicense *ConfigDepLicense, report *Report) (err error) {
+func (resolver *MavenPomResolver) ResolveLicenseFromPom(state *State, dep 
*Dependency, report *Report) (err error) {
        pomFile := filepath.Join(resolver.repo, dep.Path(), dep.Pom())
 
        pom, err := resolver.ReadLicensesFromPom(pomFile)
@@ -198,7 +204,7 @@ func (resolver *MavenPomResolver) 
ResolveLicenseFromPom(state *State, dep *Depen
                return err
        } else if headerComments != "" {
                *state |= FoundLicenseInPomHeader
-               return resolver.IdentifyLicense(pomFile, dep.Jar(), 
headerComments, dep.Version, declareLicense, report)
+               return resolver.IdentifyLicense(pomFile, dep.Jar(), 
headerComments, dep.Version, report)
        }
 
        return fmt.Errorf("not found in pom file")

Reply via email to