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

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

commit 6b506ae548d23d40abfb341bc22feaa6b56f2680
Author: nicolaferraro <ni.ferr...@gmail.com>
AuthorDate: Wed Mar 24 17:15:49 2021 +0100

    Fix #2158: Add conversion to string and regen resources
---
 deploy/traits.yaml                                 |  7 +++---
 .../attachments/schema/integration-schema.json     | 26 +++++++++++++++-------
 .../assets/attachments/schema/kamelet-schema.json  | 26 +++++++++++++++-------
 docs/modules/traits/pages/knative.adoc             |  5 ++---
 docs/modules/traits/pages/service-binding.adoc     |  2 +-
 pkg/util/reference/reference.go                    | 18 ++++++++++++++-
 pkg/util/reference/reference_test.go               | 22 ++++++++++++++++++
 7 files changed, 81 insertions(+), 25 deletions(-)

diff --git a/deploy/traits.yaml b/deploy/traits.yaml
index 62288dc..69abaf6 100755
--- a/deploy/traits.yaml
+++ b/deploy/traits.yaml
@@ -530,9 +530,8 @@ traits:
   - name: filter-source-channels
     type: bool
     description: Enables filtering on events based on the header 
"ce-knativehistory".
-      Since this is an experimental headerthat can be removed in a future 
version
-      of Knative, filtering is enabled only when the integration islistening 
from
-      more than 1 channel.
+      Since this header has been removed in newer versions ofKnative, 
filtering is
+      disabled by default.
   - name: camel-source-compat
     type: bool
     description: Enables Knative CamelSource pre 0.15 compatibility fixes 
(will be
@@ -808,7 +807,7 @@ traits:
       property.
   - name: service-bindings
     type: '[]string'
-    description: List of Provisioned Services and ServiceBindings in the form 
KIND.VERSION.GROUP/NAME[/NAMESPACE]
+    description: List of Provisioned Services and ServiceBindings in the form 
[[apigroup/]version:]kind:[namespace/]name
 - name: service
   platform: false
   profiles:
diff --git 
a/docs/modules/ROOT/assets/attachments/schema/integration-schema.json 
b/docs/modules/ROOT/assets/attachments/schema/integration-schema.json
index 14b7051..6e72017 100644
--- a/docs/modules/ROOT/assets/attachments/schema/integration-schema.json
+++ b/docs/modules/ROOT/assets/attachments/schema/integration-schema.json
@@ -1257,6 +1257,9 @@
         },
         {
           "properties": {
+            "break-on-shutdown": {
+              "type": "string"
+            },
             "copy": {
               "type": "string"
             },
@@ -3129,7 +3132,7 @@
         "include": {
           "type": "string"
         },
-        "json-view": {
+        "json-view-type-name": {
           "type": "string"
         },
         "module-class-names": {
@@ -3272,7 +3275,7 @@
         "include": {
           "type": "string"
         },
-        "json-view": {
+        "json-view-type-name": {
           "type": "string"
         },
         "library": {
@@ -4500,15 +4503,22 @@
       ]
     },
     "org.apache.camel.model.loadbalancer.CustomLoadBalancerDefinition": {
-      "type": "object",
-      "properties": {
-        "id": {
+      "anyOf": [
+        {
           "type": "string"
         },
-        "ref": {
-          "type": "string"
+        {
+          "type": "object",
+          "properties": {
+            "id": {
+              "type": "string"
+            },
+            "ref": {
+              "type": "string"
+            }
+          }
         }
-      }
+      ]
     },
     "org.apache.camel.model.loadbalancer.FailoverLoadBalancerDefinition": {
       "type": "object",
diff --git a/docs/modules/ROOT/assets/attachments/schema/kamelet-schema.json 
b/docs/modules/ROOT/assets/attachments/schema/kamelet-schema.json
index 3b2cb45..3c5802b 100644
--- a/docs/modules/ROOT/assets/attachments/schema/kamelet-schema.json
+++ b/docs/modules/ROOT/assets/attachments/schema/kamelet-schema.json
@@ -1192,6 +1192,9 @@
         },
         {
           "properties": {
+            "break-on-shutdown": {
+              "type": "string"
+            },
             "copy": {
               "type": "string"
             },
@@ -3064,7 +3067,7 @@
         "include": {
           "type": "string"
         },
-        "json-view": {
+        "json-view-type-name": {
           "type": "string"
         },
         "module-class-names": {
@@ -3207,7 +3210,7 @@
         "include": {
           "type": "string"
         },
-        "json-view": {
+        "json-view-type-name": {
           "type": "string"
         },
         "library": {
@@ -4435,15 +4438,22 @@
       ]
     },
     "org.apache.camel.model.loadbalancer.CustomLoadBalancerDefinition": {
-      "type": "object",
-      "properties": {
-        "id": {
+      "anyOf": [
+        {
           "type": "string"
         },
-        "ref": {
-          "type": "string"
+        {
+          "type": "object",
+          "properties": {
+            "id": {
+              "type": "string"
+            },
+            "ref": {
+              "type": "string"
+            }
+          }
         }
-      }
+      ]
     },
     "org.apache.camel.model.loadbalancer.FailoverLoadBalancerDefinition": {
       "type": "object",
diff --git a/docs/modules/traits/pages/knative.adoc 
b/docs/modules/traits/pages/knative.adoc
index 4b23f30..5f54e1b 100755
--- a/docs/modules/traits/pages/knative.adoc
+++ b/docs/modules/traits/pages/knative.adoc
@@ -66,9 +66,8 @@ Can contain simple event types or full Camel URIs (to use a 
specific broker).
 
 | knative.filter-source-channels
 | bool
-| Enables filtering on events based on the header "ce-knativehistory". Since 
this is an experimental header
-that can be removed in a future version of Knative, filtering is enabled only 
when the integration is
-listening from more than 1 channel.
+| Enables filtering on events based on the header "ce-knativehistory". Since 
this header has been removed in newer versions of
+Knative, filtering is disabled by default.
 
 | knative.camel-source-compat
 | bool
diff --git a/docs/modules/traits/pages/service-binding.adoc 
b/docs/modules/traits/pages/service-binding.adoc
index eafff8f..75c755c 100755
--- a/docs/modules/traits/pages/service-binding.adoc
+++ b/docs/modules/traits/pages/service-binding.adoc
@@ -28,7 +28,7 @@ The following configuration options are available:
 
 | service-binding.service-bindings
 | []string
-| List of Provisioned Services and ServiceBindings in the form 
KIND.VERSION.GROUP/NAME[/NAMESPACE]
+| List of Provisioned Services and ServiceBindings in the form 
[[apigroup/]version:]kind:[namespace/]name
 
 |===
 
diff --git a/pkg/util/reference/reference.go b/pkg/util/reference/reference.go
index 0458a89..dc79cd5 100644
--- a/pkg/util/reference/reference.go
+++ b/pkg/util/reference/reference.go
@@ -18,6 +18,7 @@ limitations under the License.
 package reference
 
 import (
+       "errors"
        "fmt"
        "regexp"
        "unicode"
@@ -124,5 +125,20 @@ func (c *Converter) simpleDecodeString(str string) 
(corev1.ObjectReference, erro
 }
 
 func (c *Converter) ToString(ref corev1.ObjectReference) (string, error) {
-       return "", nil
+       if ref.Kind == "" {
+               return "", errors.New(`object reference is missing the "kind" 
field`)
+       }
+       if ref.Name == "" {
+               return "", errors.New(`object reference is missing the "name" 
field`)
+       }
+       res := ""
+       if ref.APIVersion != "" {
+               res += ref.APIVersion + ":"
+       }
+       res += ref.Kind + ":"
+       if ref.Namespace != "" {
+               res += ref.Namespace + "/"
+       }
+       res += ref.Name
+       return res, nil
 }
diff --git a/pkg/util/reference/reference_test.go 
b/pkg/util/reference/reference_test.go
index 5539602..f13c5d8 100644
--- a/pkg/util/reference/reference_test.go
+++ b/pkg/util/reference/reference_test.go
@@ -32,6 +32,7 @@ func TestExpressions(t *testing.T) {
                name          string
                error         bool
                ref           corev1.ObjectReference
+               stringRef     string
        }{
                {
                        name:  "lowercase:source",
@@ -53,6 +54,7 @@ func TestExpressions(t *testing.T) {
                                APIVersion: "camel.apache.org/v1alpha1",
                                Name:       "source",
                        },
+                       stringRef: "camel.apache.org/v1alpha1:Kamelet:source",
                },
                {
                        name: "ns1/source",
@@ -62,6 +64,17 @@ func TestExpressions(t *testing.T) {
                                Namespace:  "ns1",
                                Name:       "source",
                        },
+                       stringRef: 
"camel.apache.org/v1alpha1:Kamelet:ns1/source",
+               },
+               {
+                       name: "v1:Secret:ns1/scr2",
+                       ref: corev1.ObjectReference{
+                               Kind:       "Secret",
+                               APIVersion: "v1",
+                               Namespace:  "ns1",
+                               Name:       "scr2",
+                       },
+                       stringRef: "v1:Secret:ns1/scr2",
                },
                {
                        name: "ksvc:service",
@@ -70,6 +83,7 @@ func TestExpressions(t *testing.T) {
                                APIVersion: "serving.knative.dev/v1",
                                Name:       "service",
                        },
+                       stringRef: "serving.knative.dev/v1:Service:service",
                },
                {
                        name: "channel:ns3/ch2",
@@ -79,6 +93,7 @@ func TestExpressions(t *testing.T) {
                                Namespace:  "ns3",
                                Name:       "ch2",
                        },
+                       stringRef: "messaging.knative.dev/v1:Channel:ns3/ch2",
                },
                {
                        name: "broker:default",
@@ -87,6 +102,7 @@ func TestExpressions(t *testing.T) {
                                APIVersion: "eventing.knative.dev/v1",
                                Name:       "default",
                        },
+                       stringRef: "eventing.knative.dev/v1:Broker:default",
                },
                {
                        name: "PostgreSQL:ns1/db",
@@ -95,6 +111,7 @@ func TestExpressions(t *testing.T) {
                                Namespace: "ns1",
                                Name:      "db",
                        },
+                       stringRef: "PostgreSQL:ns1/db",
                },
                {
                        name: "postgres.org/v1alpha1:PostgreSQL:ns1/db",
@@ -104,6 +121,7 @@ func TestExpressions(t *testing.T) {
                                Namespace:  "ns1",
                                Name:       "db",
                        },
+                       stringRef: "postgres.org/v1alpha1:PostgreSQL:ns1/db",
                },
        }
 
@@ -122,8 +140,12 @@ func TestExpressions(t *testing.T) {
                        if tc.error {
                                assert.Error(t, err)
                        } else {
+                               asString, err2 := converter.ToString(ref)
+                               assert.NoError(t, err2)
+
                                assert.NoError(t, err)
                                assert.Equal(t, tc.ref, ref)
+                               assert.Equal(t, tc.stringRef, asString)
                        }
                })
        }

Reply via email to