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 387ae53fcc42dfefb801ac9eec68f7cf7af17544
Author: Antonin Stefanutti <anto...@stefanutti.fr>
AuthorDate: Thu Jan 23 15:19:45 2020 +0100

    chore(trait): Merge Debug trait into the JVM trait
---
 docs/modules/ROOT/nav.adoc                 |   1 -
 docs/modules/ROOT/pages/traits/jvm.adoc    |   4 ++
 docs/modules/ROOT/pages/traits/traits.adoc |   1 -
 pkg/trait/debug.go                         |  58 ---------------
 pkg/trait/debug_test.go                    | 111 -----------------------------
 pkg/trait/jvm.go                           |   8 ++-
 pkg/trait/trait_catalog.go                 |   6 --
 7 files changed, 11 insertions(+), 178 deletions(-)

diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc
index 1251e0a..318f21a 100644
--- a/docs/modules/ROOT/nav.adoc
+++ b/docs/modules/ROOT/nav.adoc
@@ -21,7 +21,6 @@
 ** xref:traits/camel.adoc[Camel]
 ** xref:traits/container.adoc[Container]
 ** xref:traits/cron.adoc[Cron]
-** xref:traits/debug.adoc[Debug]
 ** xref:traits/dependencies.adoc[Dependencies]
 ** xref:traits/deployer.adoc[Deployer]
 ** xref:traits/deployment.adoc[Deployment]
diff --git a/docs/modules/ROOT/pages/traits/jvm.adoc 
b/docs/modules/ROOT/pages/traits/jvm.adoc
index 530c1a7..bdbe13c 100755
--- a/docs/modules/ROOT/pages/traits/jvm.adoc
+++ b/docs/modules/ROOT/pages/traits/jvm.adoc
@@ -26,6 +26,10 @@ The following configuration options are available:
 | bool
 | Can be used to enable or disable a trait. All traits share this common 
property.
 
+| jvm.debug
+| bool
+| Activates remote debugging, so that a debugger can be attached to the JVM, 
e.g., using port-forwarding
+
 | jvm.options
 | string
 | A comma-separated list of JVM options
diff --git a/docs/modules/ROOT/pages/traits/traits.adoc 
b/docs/modules/ROOT/pages/traits/traits.adoc
index efb3465..f0c4b24 100644
--- a/docs/modules/ROOT/pages/traits/traits.adoc
+++ b/docs/modules/ROOT/pages/traits/traits.adoc
@@ -39,7 +39,6 @@ See the trait description pages for more information on a 
specific trait:
 * xref:traits/camel.adoc[Camel Trait]
 * xref:traits/container.adoc[Container Trait]
 * xref:traits/cron.adoc[Cron Trait]
-* xref:traits/debug.adoc[Debug Trait]
 * xref:traits/dependencies.adoc[Dependencies Trait]
 * xref:traits/deployer.adoc[Deployer Trait]
 * xref:traits/deployment.adoc[Deployment Trait]
diff --git a/pkg/trait/debug.go b/pkg/trait/debug.go
deleted file mode 100644
index 38d3c5f..0000000
--- a/pkg/trait/debug.go
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
-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 trait
-
-import (
-       "fmt"
-
-       v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
-)
-
-// The Debug trait can be used to enable debugging on the integration 
container,
-// so that a remote debugger can be attached.
-//
-// +camel-k:trait=debug
-type debugTrait struct {
-       BaseTrait `property:",squash"`
-}
-
-func newDebugTrait() *debugTrait {
-       return &debugTrait{
-               BaseTrait: newBaseTrait("debug"),
-       }
-}
-
-func (t *debugTrait) Configure(e *Environment) (bool, error) {
-       if t.Enabled != nil && *t.Enabled {
-               return e.IntegrationInPhase(v1.IntegrationPhaseDeploying, 
v1.IntegrationPhaseRunning), nil
-       }
-
-       return false, nil
-}
-
-func (t *debugTrait) Apply(e *Environment) error {
-       container := e.getIntegrationContainer()
-       if container == nil {
-               return fmt.Errorf("unable to find integration container")
-       }
-
-       // TODO: Add options to configure debugging agent
-       container.Args = append(container.Args, 
"-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005")
-
-       return nil
-}
diff --git a/pkg/trait/debug_test.go b/pkg/trait/debug_test.go
deleted file mode 100644
index 32b3e1d..0000000
--- a/pkg/trait/debug_test.go
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
-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 trait
-
-import (
-       "context"
-       "testing"
-
-       "github.com/stretchr/testify/assert"
-
-       appsv1 "k8s.io/api/apps/v1"
-       corev1 "k8s.io/api/core/v1"
-
-       v1 "github.com/apache/camel-k/pkg/apis/camel/v1"
-       "github.com/apache/camel-k/pkg/util/camel"
-       "github.com/apache/camel-k/pkg/util/kubernetes"
-)
-
-func TestDebugTraitApplicability(t *testing.T) {
-       catalog, err := camel.DefaultCatalog()
-       assert.Nil(t, err)
-
-       env := Environment{
-               CamelCatalog: catalog,
-               Integration: &v1.Integration{
-                       Status: v1.IntegrationStatus{
-                               Phase: v1.IntegrationPhaseDeploying,
-                       },
-                       Spec: v1.IntegrationSpec{
-                               Traits: map[string]v1.TraitSpec{
-                                       "debug": {
-                                               Configuration: 
map[string]string{
-                                                       "enabled": "true",
-                                               },
-                                       },
-                               },
-                       },
-               },
-       }
-
-       trait := newDebugTrait()
-
-       enabled, err := trait.Configure(&env)
-       assert.Nil(t, err)
-       assert.False(t, enabled)
-
-       env.Integration.Status.Phase = v1.IntegrationPhaseRunning
-
-       enabled, err = trait.Configure(&env)
-       assert.Nil(t, err)
-       assert.False(t, enabled)
-}
-
-func TestApplyDebugTrait(t *testing.T) {
-       environment := Environment{
-               Catalog: NewCatalog(context.TODO(), nil),
-               Integration: &v1.Integration{
-                       Status: v1.IntegrationStatus{
-                               Phase: v1.IntegrationPhaseDeploying,
-                       },
-                       Spec: v1.IntegrationSpec{
-                               Traits: map[string]v1.TraitSpec{
-                                       "debug": {
-                                               Configuration: 
map[string]string{
-                                                       "enabled": "true",
-                                               },
-                                       },
-                               },
-                       },
-               },
-               Resources: kubernetes.NewCollection(),
-       }
-
-       d := appsv1.Deployment{
-               Spec: appsv1.DeploymentSpec{
-                       Template: corev1.PodTemplateSpec{
-                               Spec: corev1.PodSpec{
-                                       Containers: []corev1.Container{
-                                               {
-                                                       Name: 
defaultContainerName,
-                                               },
-                                       },
-                               },
-                       },
-               },
-       }
-
-       environment.Resources.Add(&d)
-
-       trait := newDebugTrait()
-
-       assert.Nil(t, trait.Apply(&environment))
-       assert.Equal(t, d.Spec.Template.Spec.Containers[0].Args, []string{
-               
"-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005",
-       })
-}
diff --git a/pkg/trait/jvm.go b/pkg/trait/jvm.go
index 348e093..b5ece60 100644
--- a/pkg/trait/jvm.go
+++ b/pkg/trait/jvm.go
@@ -40,7 +40,8 @@ const (
 // +camel-k:trait=jvm
 type jvmTrait struct {
        BaseTrait `property:",squash"`
-
+       // Activates remote debugging, so that a debugger can be attached to 
the JVM, e.g., using port-forwarding
+       Debug bool `property:"debug"`
        // A comma-separated list of JVM options
        Options *string `property:"options"`
 }
@@ -107,6 +108,11 @@ func (t *jvmTrait) Apply(e *Environment) error {
                container.Command = []string{"java"}
                container.WorkingDir = "/deployments"
 
+               if t.Debug {
+                       // TODO: Add options to configure debugging agent
+                       container.Args = append(container.Args, 
"-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005")
+               }
+
                // Add JVM options
                if t.Options != nil {
                        container.Args = append(container.Args, 
strings.Split(*t.Options, ",")...)
diff --git a/pkg/trait/trait_catalog.go b/pkg/trait/trait_catalog.go
index 81a3180..41d0fea 100644
--- a/pkg/trait/trait_catalog.go
+++ b/pkg/trait/trait_catalog.go
@@ -35,7 +35,6 @@ type Catalog struct {
        tPlatform         Trait
        tAffinity         Trait
        tCamel            Trait
-       tDebug            Trait
        tDependencies     Trait
        tDeployer         Trait
        tCron             Trait
@@ -67,7 +66,6 @@ func NewCatalog(ctx context.Context, c client.Client) 
*Catalog {
                tPlatform:         newPlatformTrait(),
                tAffinity:         newAffinityTrait(),
                tCamel:            newCamelTrait(),
-               tDebug:            newDebugTrait(),
                tRestDsl:          newRestDslTrait(),
                tKnative:          newKnativeTrait(),
                tDependencies:     newDependenciesTrait(),
@@ -108,7 +106,6 @@ func (c *Catalog) allTraits() []Trait {
                c.tPlatform,
                c.tAffinity,
                c.tCamel,
-               c.tDebug,
                c.tRestDsl,
                c.tKnative,
                c.tDependencies,
@@ -166,7 +163,6 @@ func (c *Catalog) TraitsForProfile(profile v1.TraitProfile) 
[]Trait {
                        c.tPullSecret,
                        c.tJolokia,
                        c.tPrometheus,
-                       c.tDebug,
                        c.tJvm,
                        c.tProbes,
                        c.tRoute,
@@ -192,7 +188,6 @@ func (c *Catalog) TraitsForProfile(profile v1.TraitProfile) 
[]Trait {
                        c.tPullSecret,
                        c.tJolokia,
                        c.tPrometheus,
-                       c.tDebug,
                        c.tJvm,
                        c.tProbes,
                        c.tIngress,
@@ -219,7 +214,6 @@ func (c *Catalog) TraitsForProfile(profile v1.TraitProfile) 
[]Trait {
                        c.tPullSecret,
                        c.tJolokia,
                        c.tPrometheus,
-                       c.tDebug,
                        c.tJvm,
                        c.tProbes,
                        c.tIstio,

Reply via email to