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 2019/12/18 22:38:13 UTC

[camel-k] branch master updated: [quarkus] in JVM mode we should no restrict the languages we can use #1154

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


The following commit(s) were added to refs/heads/master by this push:
     new 7f3675a  [quarkus] in JVM mode we should no restrict the languages we can use #1154
7f3675a is described below

commit 7f3675acb0b17b91b456d9b298f6d7d051ca52eb
Author: lburgazzoli <lb...@gmail.com>
AuthorDate: Wed Dec 18 13:14:11 2019 +0100

    [quarkus] in JVM mode we should no restrict the languages we can use #1154
---
 pkg/builder/runtime/quarkus.go | 12 +++++++++++-
 pkg/trait/quarkus.go           | 19 ++++++++++++++-----
 2 files changed, 25 insertions(+), 6 deletions(-)

diff --git a/pkg/builder/runtime/quarkus.go b/pkg/builder/runtime/quarkus.go
index e7dea56..5e94ba4 100644
--- a/pkg/builder/runtime/quarkus.go
+++ b/pkg/builder/runtime/quarkus.go
@@ -59,11 +59,21 @@ func loadCamelQuarkusCatalog(ctx *builder.Context) error {
 
 func generateQuarkusProject(ctx *builder.Context) error {
 	p := maven.NewProjectWithGAV("org.apache.camel.k.integration", "camel-k-integration", defaults.Version)
-	p.Properties = ctx.Build.Properties
 	p.DependencyManagement = &maven.DependencyManagement{Dependencies: make([]maven.Dependency, 0)}
 	p.Dependencies = make([]maven.Dependency, 0)
 	p.Build = &maven.Build{Plugins: make([]maven.Plugin, 0)}
 
+	p.Properties = make(map[string]string)
+	for k, v := range ctx.Build.Properties {
+		p.Properties[k] = v
+	}
+
+	// camel-quarkus doe routes discovery at startup but we don't want
+	// this to happen as routes are loaded at runtime and looking for
+	// routes at build time may try to load camel-k-runtime routes builder
+	// proxies which in some case may fail
+	p.Properties["quarkus.camel.main.routes-discovery.enabled"] = "false"
+
 	// DependencyManagement
 	p.DependencyManagement.Dependencies = append(p.DependencyManagement.Dependencies,
 		maven.Dependency{
diff --git a/pkg/trait/quarkus.go b/pkg/trait/quarkus.go
index 3b75eed..fd24438 100644
--- a/pkg/trait/quarkus.go
+++ b/pkg/trait/quarkus.go
@@ -47,6 +47,8 @@ type quarkusTrait struct {
 	QuarkusVersion string `property:"quarkus-version"`
 	// The Camel-Quarkus version to use for the integration
 	CamelQuarkusVersion string `property:"camel-quarkus-version"`
+	// The Quarkus runtime type (reserved for future use)
+	Native bool `property:"native"`
 }
 
 func newQuarkusTrait() *quarkusTrait {
@@ -156,16 +158,23 @@ func (t *quarkusTrait) addRuntimeDependencies(e *Environment) error {
 
 	for _, s := range e.Integration.Sources() {
 		meta := metadata.Extract(e.CamelCatalog, s)
+		lang := s.InferLanguage()
 
-		switch language := s.InferLanguage(); language {
-		case v1alpha1.LanguageYaml:
+		switch {
+		case lang == v1alpha1.LanguageYaml:
 			addRuntimeDependency("camel-k-quarkus-loader-yaml", dependencies)
-		case v1alpha1.LanguageXML:
+		case lang == v1alpha1.LanguageXML:
 			addRuntimeDependency("camel-k-quarkus-loader-xml", dependencies)
-		case v1alpha1.LanguageJavaScript:
+		case lang == v1alpha1.LanguageJavaScript:
 			addRuntimeDependency("camel-k-quarkus-loader-js", dependencies)
+		case lang == v1alpha1.LanguageGroovy && !t.Native:
+			addRuntimeDependency("camel-k-quarkus-loader-groovy", dependencies)
+		case lang == v1alpha1.LanguageKotlin && !t.Native:
+			addRuntimeDependency("camel-k-quarkus-loader-kotlin", dependencies)
+		case lang == v1alpha1.LanguageJavaSource && !t.Native:
+			addRuntimeDependency("camel-k-quarkus-loader-java", dependencies)
 		default:
-			return fmt.Errorf("unsupported language for Quarkus runtime: %s", language)
+			return fmt.Errorf("unsupported language for Quarkus runtime: %s (native=%t)", lang, t.Native)
 		}
 
 		if strings.HasPrefix(s.Loader, "knative-source") {