This is an automated email from the ASF dual-hosted git repository. nferraro pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel-k.git
commit e7513f8335770fa34440d1de7229473a6a5acac9 Author: Doru Bercea <gheorghe-teod.ber...@ibm.com> AuthorDate: Mon Oct 12 13:52:40 2020 -0400 Factor out loader dependency computation. Add check. --- pkg/cmd/inspect.go | 29 ++--------------------------- pkg/trait/dependencies.go | 28 +++------------------------- pkg/trait/util.go | 36 ++++++++++++++++++++++++++++++++++++ pkg/util/util.go | 7 ++++++- 4 files changed, 47 insertions(+), 53 deletions(-) diff --git a/pkg/cmd/inspect.go b/pkg/cmd/inspect.go index 5c9fd95..7a92d02 100644 --- a/pkg/cmd/inspect.go +++ b/pkg/cmd/inspect.go @@ -23,7 +23,7 @@ import ( "path" v1 "github.com/apache/camel-k/pkg/apis/camel/v1" - "github.com/apache/camel-k/pkg/metadata" + "github.com/apache/camel-k/pkg/trait" "github.com/apache/camel-k/pkg/util" "github.com/apache/camel-k/pkg/util/camel" "github.com/apache/camel-k/pkg/util/maven" @@ -148,32 +148,7 @@ func (command *inspectCmdOptions) run(args []string) error { } // Extract list of top-level dependencies. - metadata.Extract(catalog, sourceSpec) - meta := metadata.Extract(catalog, sourceSpec) - lang := sourceSpec.InferLanguage() - - // add auto-detected dependencies - dependencies.Merge(meta.Dependencies) - - for loader, v := range catalog.Loaders { - // add loader specific dependencies - if sourceSpec.Loader != "" && sourceSpec.Loader == loader { - dependencies.Add(fmt.Sprintf("mvn:%s/%s", v.GroupID, v.ArtifactID)) - - for _, d := range v.Dependencies { - dependencies.Add(fmt.Sprintf("mvn:%s/%s", d.GroupID, d.ArtifactID)) - } - } else if sourceSpec.Loader == "" { - // add language specific dependencies - if util.StringSliceExists(v.Languages, string(lang)) { - dependencies.Add(fmt.Sprintf("mvn:%s/%s", v.GroupID, v.ArtifactID)) - - for _, d := range v.Dependencies { - dependencies.Add(fmt.Sprintf("mvn:%s/%s", d.GroupID, d.ArtifactID)) - } - } - } - } + dependencies.Merge(trait.AddSourceDependencies(sourceSpec, catalog)) } for _, dep := range dependencies.List() { diff --git a/pkg/trait/dependencies.go b/pkg/trait/dependencies.go index 5fc0264..3a5df80 100644 --- a/pkg/trait/dependencies.go +++ b/pkg/trait/dependencies.go @@ -70,32 +70,10 @@ func (t *dependenciesTrait) Apply(e *Environment) error { return err } for _, s := range sources { - meta := metadata.Extract(e.CamelCatalog, s) - lang := s.InferLanguage() - - // add auto-detected dependencies - dependencies.Merge(meta.Dependencies) - - for loader, v := range e.CamelCatalog.Loaders { - // add loader specific dependencies - if s.Loader != "" && s.Loader == loader { - dependencies.Add(fmt.Sprintf("mvn:%s/%s", v.GroupID, v.ArtifactID)) - - for _, d := range v.Dependencies { - dependencies.Add(fmt.Sprintf("mvn:%s/%s", d.GroupID, d.ArtifactID)) - } - } else if s.Loader == "" { - // add language specific dependencies - if util.StringSliceExists(v.Languages, string(lang)) { - dependencies.Add(fmt.Sprintf("mvn:%s/%s", v.GroupID, v.ArtifactID)) - - for _, d := range v.Dependencies { - dependencies.Add(fmt.Sprintf("mvn:%s/%s", d.GroupID, d.ArtifactID)) - } - } - } - } + // Add source-related dependencies. + dependencies.Merge(AddSourceDependencies(s, e.CamelCatalog)) + meta := metadata.Extract(e.CamelCatalog, s) meta.RequiredCapabilities.Each(func(item string) bool { util.StringSliceUniqueAdd(&e.Integration.Status.Capabilities, item) return true diff --git a/pkg/trait/util.go b/pkg/trait/util.go index 1fcf299..7a28e6e 100644 --- a/pkg/trait/util.go +++ b/pkg/trait/util.go @@ -31,6 +31,9 @@ import ( v1 "github.com/apache/camel-k/pkg/apis/camel/v1" "github.com/apache/camel-k/pkg/client" + "github.com/apache/camel-k/pkg/metadata" + "github.com/apache/camel-k/pkg/util" + "github.com/apache/camel-k/pkg/util/camel" ) var exactVersionRegexp = regexp.MustCompile(`^(\d+)\.(\d+)\.([\w-.]+)$`) @@ -152,3 +155,36 @@ func toHostDir(host string) string { h := strings.Replace(strings.Replace(host, "https://", "", 1), "http://", "", 1) return toFileName.ReplaceAllString(h, "_") } + +// AddSourceDependencies -- +func AddSourceDependencies(source v1.SourceSpec, catalog *camel.RuntimeCatalog) *strset.Set { + dependencies := strset.New() + + // Add auto-detected dependencies. + meta := metadata.Extract(catalog, source) + dependencies.Merge(meta.Dependencies) + + // Add loader dependencies. + lang := source.InferLanguage() + for loader, v := range catalog.Loaders { + // add loader specific dependencies + if source.Loader != "" && source.Loader == loader { + dependencies.Add(fmt.Sprintf("mvn:%s/%s", v.GroupID, v.ArtifactID)) + + for _, d := range v.Dependencies { + dependencies.Add(fmt.Sprintf("mvn:%s/%s", d.GroupID, d.ArtifactID)) + } + } else if source.Loader == "" { + // add language specific dependencies + if util.StringSliceExists(v.Languages, string(lang)) { + dependencies.Add(fmt.Sprintf("mvn:%s/%s", v.GroupID, v.ArtifactID)) + + for _, d := range v.Dependencies { + dependencies.Add(fmt.Sprintf("mvn:%s/%s", d.GroupID, d.ArtifactID)) + } + } + } + } + + return dependencies +} diff --git a/pkg/util/util.go b/pkg/util/util.go index ab3feef..7b76d88 100644 --- a/pkg/util/util.go +++ b/pkg/util/util.go @@ -237,7 +237,12 @@ func DirectoryExists(directory string) (bool, error) { if os.IsNotExist(err) { return false, nil } - return info.IsDir(), err + + if err != nil { + return false, err + } + + return info.IsDir(), nil } // BytesMarshaller --