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

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

commit 7b9ed83e75d4be9b0f2aca5434f6d2d82cd389c4
Author: Pasquale Congiusti <pasquale.congiu...@gmail.com>
AuthorDate: Mon Jan 15 17:02:32 2024 +0100

    fix(jib): inherit maven options
---
 .../platform_traits_test.go                        |  3 ++
 pkg/util/maven/maven_command.go                    | 15 +++++++--
 pkg/util/maven/maven_command_test.go               | 36 ++++++++++++++++++++++
 3 files changed, 51 insertions(+), 3 deletions(-)

diff --git a/e2e/commonwithcustominstall/platform_traits_test.go 
b/e2e/commonwithcustominstall/platform_traits_test.go
index 7e0d5380b..839cf5a96 100644
--- a/e2e/commonwithcustominstall/platform_traits_test.go
+++ b/e2e/commonwithcustominstall/platform_traits_test.go
@@ -41,12 +41,15 @@ func TestTraitOnIntegrationPlatform(t *testing.T) {
                Expect(KamelInstallWithID(operatorID, 
ns).Execute()).To(Succeed())
 
                containerTestName := "testname"
+
+               Eventually(PlatformPhase(ns), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
                ip := Platform(ns)()
                ip.Spec.Traits = v1.Traits{Logging: &trait.LoggingTrait{Level: 
"DEBUG"}, Container: &trait.ContainerTrait{Name: containerTestName}}
 
                if err := TestClient().Update(TestContext, ip); err != nil {
                        t.Fatal("Can't create IntegrationPlatform", err)
                }
+               Eventually(PlatformPhase(ns), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
                name := RandomizedSuffixName("java")
                t.Run("Run integration with platform traits", func(t 
*testing.T) {
diff --git a/pkg/util/maven/maven_command.go b/pkg/util/maven/maven_command.go
index 5c01a36fd..922421f98 100644
--- a/pkg/util/maven/maven_command.go
+++ b/pkg/util/maven/maven_command.go
@@ -143,7 +143,7 @@ func (c *Command) Do(ctx context.Context) error {
        Log.WithValues("MAVEN_OPTS", mavenOptions).Infof("executing: %s", 
strings.Join(cmd.Args, " "))
 
        // generate maven file
-       if err := generateMavenContext(c.context.Path, args); err != nil {
+       if err := generateMavenContext(c.context.Path, args, mavenOptions); err 
!= nil {
                return err
        }
 
@@ -286,8 +286,12 @@ func ParseGAV(gav string) (Dependency, error) {
 }
 
 // Create a MAVEN_CONTEXT file containing all arguments for a maven command.
-func generateMavenContext(path string, args []string) error {
+func generateMavenContext(path string, args []string, options string) error {
        // TODO refactor maven code to avoid creating a file to pass command 
args
+       return util.WriteToFile(filepath.Join(path, "MAVEN_CONTEXT"), 
getMavenContext(args, options))
+}
+
+func getMavenContext(args []string, options string) string {
        commandArgs := make([]string, 0)
        for _, arg := range args {
                if arg != "package" && len(strings.TrimSpace(arg)) != 0 {
@@ -295,5 +299,10 @@ func generateMavenContext(path string, args []string) 
error {
                }
        }
 
-       return util.WriteToFile(filepath.Join(path, "MAVEN_CONTEXT"), 
strings.Join(commandArgs, " "))
+       mavenContext := strings.Join(commandArgs, " ")
+       if options != "" {
+               mavenContext += " " + options
+       }
+
+       return mavenContext
 }
diff --git a/pkg/util/maven/maven_command_test.go 
b/pkg/util/maven/maven_command_test.go
new file mode 100644
index 000000000..9ce2734fa
--- /dev/null
+++ b/pkg/util/maven/maven_command_test.go
@@ -0,0 +1,36 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package maven
+
+import (
+       "testing"
+
+       "github.com/stretchr/testify/assert"
+)
+
+func TestGetMavenContext(t *testing.T) {
+       mvnSimpleCompile := getMavenContext([]string{"compile", "-s", 
"my-settings.xml"}, "")
+       mvnOptionsCompile := getMavenContext([]string{"compile", "-s", 
"my-settings.xml"}, "-DmyProperty=hello")
+       mvnSimplePackage := getMavenContext([]string{"package", "-s", 
"my-settings.xml"}, "")
+       mvnOptionsPackage := getMavenContext([]string{"package", "-s", 
"my-settings.xml"}, "-DmyProperty=hello")
+
+       assert.Equal(t, "compile -s my-settings.xml", mvnSimpleCompile)
+       assert.Equal(t, "compile -s my-settings.xml -DmyProperty=hello", 
mvnOptionsCompile)
+       assert.Equal(t, "-s my-settings.xml", mvnSimplePackage)
+       assert.Equal(t, "-s my-settings.xml -DmyProperty=hello", 
mvnOptionsPackage)
+}

Reply via email to