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 <[email protected]>
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 != "" {

Reply via email to