You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by as...@apache.org on 2019/11/04 16:10:40 UTC

[camel-k] 16/38: feat(quarkus): Support mapping source dependencies to Camel Quarkus extensions

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

astefanutti pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-k.git

commit 171fef512c81a7bef745d35e2ffd15da706c1402
Author: Antonin Stefanutti <an...@stefanutti.fr>
AuthorDate: Wed Oct 23 16:27:04 2019 +0200

    feat(quarkus): Support mapping source dependencies to Camel Quarkus extensions
---
 pkg/util/source/inspector.go | 45 ++++++++++++++++++++++++++++++--------------
 1 file changed, 31 insertions(+), 14 deletions(-)

diff --git a/pkg/util/source/inspector.go b/pkg/util/source/inspector.go
index 4ee8897..aae2df7 100644
--- a/pkg/util/source/inspector.go
+++ b/pkg/util/source/inspector.go
@@ -37,20 +37,31 @@ var (
 	doubleQuotedToF  = regexp.MustCompile(`\.toF\s*\(\s*"([a-zA-Z0-9-]+:[^"]+)"`)
 	languageRegexp   = regexp.MustCompile(`language\s*\(\s*["|']([a-zA-Z0-9-]+[^"|']+)["|']\s*,.*\)`)
 
-	additionalDependencies = map[string]string{
-		`.*JsonLibrary\.Jackson.*`:                         "camel:jackson",
-		`.*\.hystrix().*`:                                  "camel:hystrix",
-		`.*restConfiguration().*`:                          "camel:rest",
-		`.*rest(("[a-zA-Z0-9-/]+")*).*`:                    "camel:rest",
-		`^\s*rest\s*{.*`:                                   "camel:rest",
-		`.*\.groovy\s*\(.*\).*`:                            "camel:groovy",
-		`.*\.?(jsonpath|jsonpathWriteAsString)\s*\(.*\).*`: "camel:jsonpath",
-		`.*\.ognl\s*\(.*\).*`:                              "camel:ognl",
-		`.*\.mvel\s*\(.*\).*`:                              "camel:mvel",
-		`.*\.?simple\s*\(.*\).*`:                           "camel:bean",
-		`.*\.xquery\s*\(.*\).*`:                            "camel:saxon",
-		`.*\.?xpath\s*\(.*\).*`:                            "camel:xpath",
-		`.*\.xtokenize\s*\(.*\).*`:                         "camel:jaxp",
+	sourceDependencies = struct {
+		main    map[string]string
+		quarkus map[string]string
+	}{
+		main: map[string]string{
+			`.*JsonLibrary\.Jackson.*`:                         "camel:jackson",
+			`.*\.hystrix().*`:                                  "camel:hystrix",
+			`.*restConfiguration().*`:                          "camel:rest",
+			`.*rest(("[a-zA-Z0-9-/]+")*).*`:                    "camel:rest",
+			`^\s*rest\s*{.*`:                                   "camel:rest",
+			`.*\.groovy\s*\(.*\).*`:                            "camel:groovy",
+			`.*\.?(jsonpath|jsonpathWriteAsString)\s*\(.*\).*`: "camel:jsonpath",
+			`.*\.ognl\s*\(.*\).*`:                              "camel:ognl",
+			`.*\.mvel\s*\(.*\).*`:                              "camel:mvel",
+			`.*\.?simple\s*\(.*\).*`:                           "camel:bean",
+			`.*\.xquery\s*\(.*\).*`:                            "camel:saxon",
+			`.*\.?xpath\s*\(.*\).*`:                            "camel:xpath",
+			`.*\.xtokenize\s*\(.*\).*`:                         "camel:jaxp",
+		},
+		quarkus: map[string]string{
+			`.*restConfiguration().*`:       "camel-quarkus:rest",
+			`.*rest(("[a-zA-Z0-9-/]+")*).*`: "camel-quarkus:rest",
+			`^\s*rest\s*{.*`:                "camel-quarkus:rest",
+			`.*\.?simple\s*\(.*\).*`:        "camel-quarkus:bean",
+		},
 	}
 )
 
@@ -121,6 +132,12 @@ func (i *baseInspector) discoverDependencies(source v1alpha1.SourceSpec, meta *M
 		}
 	}
 
+	var additionalDependencies map[string]string
+	if i.catalog.RuntimeProvider != nil && i.catalog.RuntimeProvider.Quarkus != nil {
+		additionalDependencies = sourceDependencies.quarkus
+	} else {
+		additionalDependencies = sourceDependencies.main
+	}
 	for pattern, dep := range additionalDependencies {
 		pat := regexp.MustCompile(pattern)
 		if pat.MatchString(source.Content) {