You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by nf...@apache.org on 2020/10/21 21:27:37 UTC
[camel-k] 02/13: Factor out loader dependency computation. Add
check.
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 <gh...@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 --