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:42 UTC

[camel-k] 18/38: feat(quarkus): Add Camel Quarkus and Quarkus versions trait configuration options

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 081e3e6a6f4fae6aafe0b324fdb1f6c8a78c5c42
Author: Antonin Stefanutti <an...@stefanutti.fr>
AuthorDate: Thu Oct 24 12:20:16 2019 +0200

    feat(quarkus): Add Camel Quarkus and Quarkus versions trait configuration options
---
 pkg/trait/camel.go       | 37 +++++++++++++++++++++++++++---------
 pkg/trait/quarkus.go     | 49 ++++++++++++++++++++++++++++++++++++++++++++----
 pkg/trait/trait_types.go | 34 ---------------------------------
 3 files changed, 73 insertions(+), 47 deletions(-)

diff --git a/pkg/trait/camel.go b/pkg/trait/camel.go
index 66f7024..3cd0bd9 100644
--- a/pkg/trait/camel.go
+++ b/pkg/trait/camel.go
@@ -59,15 +59,8 @@ func (t *camelTrait) Configure(e *Environment) (bool, error) {
 }
 
 func (t *camelTrait) Apply(e *Environment) error {
-	cv := e.DetermineCamelVersion()
-	rv := e.DetermineRuntimeVersion()
-
-	if t.Version != "" {
-		cv = t.Version
-	}
-	if t.RuntimeVersion != "" {
-		rv = t.RuntimeVersion
-	}
+	cv := t.determineCamelVersion(e)
+	rv := t.determineRuntimeVersion(e)
 
 	if e.CamelCatalog == nil {
 		quarkus := e.Catalog.GetTrait("quarkus").(*quarkusTrait)
@@ -240,3 +233,29 @@ func (t *camelTrait) generateMavenProject(camelVersion string, runtimeVersion st
 
 	return p
 }
+
+func (t *camelTrait) determineCamelVersion(e *Environment) string {
+	if t.Version != "" {
+		return t.Version
+	}
+	if e.Integration != nil && e.Integration.Status.CamelVersion != "" {
+		return e.Integration.Status.CamelVersion
+	}
+	if e.IntegrationKit != nil && e.IntegrationKit.Status.CamelVersion != "" {
+		return e.IntegrationKit.Status.CamelVersion
+	}
+	return e.Platform.Spec.Build.CamelVersion
+}
+
+func (t *camelTrait) determineRuntimeVersion(e *Environment) string {
+	if t.RuntimeVersion != "" {
+		return t.RuntimeVersion
+	}
+	if e.Integration != nil && e.Integration.Status.RuntimeVersion != "" {
+		return e.Integration.Status.RuntimeVersion
+	}
+	if e.IntegrationKit != nil && e.IntegrationKit.Status.RuntimeVersion != "" {
+		return e.IntegrationKit.Status.RuntimeVersion
+	}
+	return e.Platform.Spec.Build.RuntimeVersion
+}
diff --git a/pkg/trait/quarkus.go b/pkg/trait/quarkus.go
index 5139ce7..7a9ab4d 100644
--- a/pkg/trait/quarkus.go
+++ b/pkg/trait/quarkus.go
@@ -33,7 +33,9 @@ import (
 )
 
 type quarkusTrait struct {
-	BaseTrait `property:",squash"`
+	BaseTrait           `property:",squash"`
+	QuarkusVersion      string `property:"quarkus-version"`
+	CamelQuarkusVersion string `property:"camel-quarkus-version"`
 }
 
 func newQuarkusTrait() *quarkusTrait {
@@ -61,9 +63,8 @@ func (t *quarkusTrait) loadOrCreateCatalog(e *Environment, camelVersion string,
 	}
 
 	c, err := camel.LoadCatalog(e.C, e.Client, ns, camelVersion, runtimeVersion, v1alpha1.QuarkusRuntimeProvider{
-		// FIXME
-		CamelQuarkusVersion: "0.2.0",
-		QuarkusVersion:      "0.21.2",
+		CamelQuarkusVersion: t.determineCamelQuarkusVersion(e),
+		QuarkusVersion:      t.determineQuarkusVersion(e),
 	})
 	if err != nil {
 		return err
@@ -122,3 +123,43 @@ func (t *quarkusTrait) addContainerEnvironment(e *Environment) {
 func addRuntimeDependency(dependency string, dependencies *[]string) {
 	util.StringSliceUniqueAdd(dependencies, fmt.Sprintf("mvn:org.apache.camel.k/%s", dependency))
 }
+
+func (t *quarkusTrait) determineQuarkusVersion(e *Environment) string {
+	if t.QuarkusVersion != "" {
+		return t.QuarkusVersion
+	}
+	if e.Integration != nil && e.Integration.Status.RuntimeProvider != nil && e.Integration.Status.RuntimeProvider.Quarkus != nil &&
+		e.Integration.Status.RuntimeProvider.Quarkus.QuarkusVersion != "" {
+		return e.Integration.Status.RuntimeProvider.Quarkus.QuarkusVersion
+	}
+	if e.IntegrationKit != nil && e.IntegrationKit.Status.RuntimeProvider != nil && e.IntegrationKit.Status.RuntimeProvider.Quarkus != nil &&
+		e.IntegrationKit.Status.RuntimeProvider.Quarkus.QuarkusVersion != "" {
+		return e.IntegrationKit.Status.RuntimeProvider.Quarkus.QuarkusVersion
+	}
+	if e.Platform.Spec.Build.RuntimeProvider != nil && e.Platform.Spec.Build.RuntimeProvider.Quarkus != nil &&
+		e.Platform.Spec.Build.RuntimeProvider.Quarkus.QuarkusVersion != "" {
+		return e.Platform.Spec.Build.RuntimeProvider.Quarkus.QuarkusVersion
+	}
+	// FIXME
+	return "0.21.2"
+}
+
+func (t *quarkusTrait) determineCamelQuarkusVersion(e *Environment) string {
+	if t.CamelQuarkusVersion != "" {
+		return t.CamelQuarkusVersion
+	}
+	if e.Integration != nil && e.Integration.Status.RuntimeProvider != nil && e.Integration.Status.RuntimeProvider.Quarkus != nil &&
+		e.Integration.Status.RuntimeProvider.Quarkus.CamelQuarkusVersion != "" {
+		return e.Integration.Status.RuntimeProvider.Quarkus.CamelQuarkusVersion
+	}
+	if e.IntegrationKit != nil && e.IntegrationKit.Status.RuntimeProvider != nil && e.IntegrationKit.Status.RuntimeProvider.Quarkus != nil &&
+		e.IntegrationKit.Status.RuntimeProvider.Quarkus.CamelQuarkusVersion != "" {
+		return e.IntegrationKit.Status.RuntimeProvider.Quarkus.CamelQuarkusVersion
+	}
+	if e.Platform.Spec.Build.RuntimeProvider != nil && e.Platform.Spec.Build.RuntimeProvider.Quarkus != nil &&
+		e.Platform.Spec.Build.RuntimeProvider.Quarkus.CamelQuarkusVersion != "" {
+		return e.Platform.Spec.Build.RuntimeProvider.Quarkus.CamelQuarkusVersion
+	}
+	// FIXME
+	return "0.2.0"
+}
diff --git a/pkg/trait/trait_types.go b/pkg/trait/trait_types.go
index f1cb187..622953e 100644
--- a/pkg/trait/trait_types.go
+++ b/pkg/trait/trait_types.go
@@ -225,40 +225,6 @@ func (e *Environment) DetermineControllerStrategy(ctx context.Context, c control
 	return ControllerStrategyKnativeService, nil
 }
 
-// DetermineCamelVersion --
-func (e *Environment) DetermineCamelVersion() string {
-	var version string
-
-	if e.Integration != nil {
-		version = e.Integration.Status.CamelVersion
-	}
-	if e.IntegrationKit != nil && version == "" {
-		version = e.IntegrationKit.Status.CamelVersion
-	}
-	if version == "" {
-		version = e.Platform.Spec.Build.CamelVersion
-	}
-
-	return version
-}
-
-// DetermineRuntimeVersion --
-func (e *Environment) DetermineRuntimeVersion() string {
-	var version string
-
-	if e.Integration != nil {
-		version = e.Integration.Status.RuntimeVersion
-	}
-	if e.IntegrationKit != nil && version == "" {
-		version = e.IntegrationKit.Status.RuntimeVersion
-	}
-	if version == "" {
-		version = e.Platform.Spec.Build.RuntimeVersion
-	}
-
-	return version
-}
-
 // DetermineNamespace --
 func (e *Environment) DetermineNamespace() string {
 	if e.Integration != nil && e.Integration.Namespace != "" {