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 f4838b2c1186ea0bfc06ec8e52acbb028497cce4 Author: Antonin Stefanutti <anto...@stefanutti.fr> AuthorDate: Fri Jan 17 16:22:12 2020 +0100 chore(trait): Add main class or JAR to integration container arguments --- pkg/trait/classpath.go | 12 ++++++++++++ pkg/trait/classpath_test.go | 17 ++++++++++------- pkg/trait/environment.go | 12 +----------- pkg/trait/quarkus.go | 5 ----- pkg/trait/quarkus_test.go | 9 --------- 5 files changed, 23 insertions(+), 32 deletions(-) diff --git a/pkg/trait/classpath.go b/pkg/trait/classpath.go index 5281477..bbbe845 100644 --- a/pkg/trait/classpath.go +++ b/pkg/trait/classpath.go @@ -28,6 +28,11 @@ import ( k8sclient "sigs.k8s.io/controller-runtime/pkg/client" v1 "github.com/apache/camel-k/pkg/apis/camel/v1" + "github.com/apache/camel-k/pkg/util/defaults" +) + +const ( + defaultMainClass = "org.apache.camel.k.main.Application" ) // The Classpath trait is used internally to configure the classpath of the final integration. @@ -111,6 +116,13 @@ func (t *classpathTrait) Apply(e *Environment) error { sort.Strings(items) container.Args = append(container.Args, "-cp", strings.Join(items, ":")) + + quarkus := e.Catalog.GetTrait("quarkus").(*quarkusTrait) + if quarkus.isEnabled() { + container.Args = append(container.Args, "-jar", "camel-k-integration-"+defaults.Version+"-runner.jar") + } else { + container.Args = append(container.Args, defaultMainClass) + } } return nil diff --git a/pkg/trait/classpath_test.go b/pkg/trait/classpath_test.go index 1cb50ad..5b12675 100644 --- a/pkg/trait/classpath_test.go +++ b/pkg/trait/classpath_test.go @@ -20,7 +20,6 @@ package trait import ( "context" "sort" - "strings" "testing" appsv1 "k8s.io/api/apps/v1" @@ -102,9 +101,11 @@ func TestApplyClasspathTraitWithDeploymentResource(t *testing.T) { cp := strset.New("/etc/camel/resources", "./resources", "/mount/path").List() sort.Strings(cp) - assert.Len(t, d.Spec.Template.Spec.Containers[0].Env, 1) - assert.Equal(t, "JAVA_CLASSPATH", d.Spec.Template.Spec.Containers[0].Env[0].Name) - assert.Equal(t, strings.Join(cp, ":"), d.Spec.Template.Spec.Containers[0].Env[0].Value) + assert.Equal(t, d.Spec.Template.Spec.Containers[0].Args, []string{ + "-cp", + "./resources:/etc/camel/resources:/mount/path", + "org.apache.camel.k.main.Application", + }) } func TestApplyClasspathTraitWithKNativeResource(t *testing.T) { @@ -132,9 +133,11 @@ func TestApplyClasspathTraitWithKNativeResource(t *testing.T) { cp := strset.New("/etc/camel/resources", "./resources", "/mount/path").List() sort.Strings(cp) - assert.Len(t, s.Spec.ConfigurationSpec.Template.Spec.Containers[0].Env, 1) - assert.Equal(t, "JAVA_CLASSPATH", s.Spec.ConfigurationSpec.Template.Spec.Containers[0].Env[0].Name) - assert.Equal(t, strings.Join(cp, ":"), s.Spec.ConfigurationSpec.Template.Spec.Containers[0].Env[0].Value) + assert.Equal(t, s.Spec.Template.Spec.Containers[0].Args, []string{ + "-cp", + "./resources:/etc/camel/resources:/mount/path", + "org.apache.camel.k.main.Application", + }) } func createNominalClasspathTest() (*classpathTrait, *Environment) { diff --git a/pkg/trait/environment.go b/pkg/trait/environment.go index 7621220..b9d095e 100644 --- a/pkg/trait/environment.go +++ b/pkg/trait/environment.go @@ -24,7 +24,7 @@ import ( ) // The environment trait is used internally to inject standard environment variables in the integration container, -// such as `NAMESPACE`, `POD_NAME`, `JAVA_MAIN_CLASS` and others. +// such as `NAMESPACE`, `POD_NAME` and others. // // +camel-k:trait=environment type environmentTrait struct { @@ -38,9 +38,6 @@ const ( envVarCamelKVersion = "CAMEL_K_VERSION" envVarCamelKRuntimeVersion = "CAMEL_K_RUNTIME_VERSION" envVarCamelVersion = "CAMEL_VERSION" - envVarMainClass = "JAVA_MAIN_CLASS" - envVarAppJAR = "JAVA_APP_JAR" - defaultMainClass = "org.apache.camel.k.main.Application" ) func newEnvironmentTrait() *environmentTrait { @@ -69,13 +66,6 @@ func (t *environmentTrait) Apply(e *Environment) error { envvar.SetValFrom(&e.EnvVars, envVarPodName, "metadata.name") } - quarkus := e.Catalog.GetTrait("quarkus").(*quarkusTrait) - if quarkus.isEnabled() { - quarkus.addContainerEnvironment(e) - } else { - envvar.SetVal(&e.EnvVars, envVarMainClass, defaultMainClass) - } - return nil } diff --git a/pkg/trait/quarkus.go b/pkg/trait/quarkus.go index 9e46b8e..c814675 100644 --- a/pkg/trait/quarkus.go +++ b/pkg/trait/quarkus.go @@ -32,7 +32,6 @@ import ( "github.com/apache/camel-k/pkg/util" "github.com/apache/camel-k/pkg/util/camel" "github.com/apache/camel-k/pkg/util/defaults" - "github.com/apache/camel-k/pkg/util/envvar" "github.com/apache/camel-k/pkg/util/maven" ) @@ -191,10 +190,6 @@ func (t *quarkusTrait) addRuntimeDependencies(e *Environment) error { return nil } -func (t *quarkusTrait) addContainerEnvironment(e *Environment) { - envvar.SetVal(&e.EnvVars, envVarAppJAR, "camel-k-integration-"+defaults.Version+"-runner.jar") -} - func addRuntimeDependency(dependency string, dependencies *[]string) { util.StringSliceUniqueAdd(dependencies, fmt.Sprintf("mvn:org.apache.camel.k/%s", dependency)) } diff --git a/pkg/trait/quarkus_test.go b/pkg/trait/quarkus_test.go index dbc3aed..c368d7e 100644 --- a/pkg/trait/quarkus_test.go +++ b/pkg/trait/quarkus_test.go @@ -24,7 +24,6 @@ import ( "github.com/apache/camel-k/pkg/builder" "github.com/apache/camel-k/pkg/util/camel" - "github.com/apache/camel-k/pkg/util/envvar" "github.com/stretchr/testify/assert" ) @@ -107,14 +106,6 @@ func TestQuarkusTraitAddRuntimeDependenciesWithouSourceDoesNothing(t *testing.T) assert.Len(t, environment.Integration.Status.Dependencies, 0) } -func TestQuarkusTraitAddContainerEnvironmentShouldSucceed(t *testing.T) { - quarkusTrait, environment := createNominalQuarkusTest() - - quarkusTrait.addContainerEnvironment(environment) - - assert.NotNil(t, envvar.Get(environment.EnvVars, envVarAppJAR)) -} - func TestQuarkusTraitAddRuntimeDependencyShouldSucceed(t *testing.T) { dependency := "depA" dependencies := make([]string, 0)