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

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

commit 987fc9da7c1f0166ba29142d24fe2044b21aa735
Author: Pasquale Congiusti <[email protected]>
AuthorDate: Tue Apr 27 11:09:04 2021 +0200

    refactor(controller): error handler bean properties
---
 .../error-handler/kamelet-binding-error-handler.yaml   |  2 +-
 pkg/apis/camel/v1alpha1/error_handler_types.go         | 18 +++++++++++++++---
 pkg/controller/kameletbinding/error_handler_test.go    |  8 ++++----
 3 files changed, 20 insertions(+), 8 deletions(-)

diff --git a/examples/kamelets/error-handler/kamelet-binding-error-handler.yaml 
b/examples/kamelets/error-handler/kamelet-binding-error-handler.yaml
index 6c44ca7..7a935d6 100644
--- a/examples/kamelets/error-handler/kamelet-binding-error-handler.yaml
+++ b/examples/kamelets/error-handler/kamelet-binding-error-handler.yaml
@@ -38,7 +38,7 @@ spec:
 #    ref: "something"
 #    bean:
 #      type: "org.apache.camel.builder.DeadLetterChannelBuilder"
-#      parameters:
+#      properties:
 #        deadLetterUri: log:error
     dead-letter-channel:
       endpoint:
diff --git a/pkg/apis/camel/v1alpha1/error_handler_types.go 
b/pkg/apis/camel/v1alpha1/error_handler_types.go
index 4f3f4e7..5019796 100644
--- a/pkg/apis/camel/v1alpha1/error_handler_types.go
+++ b/pkg/apis/camel/v1alpha1/error_handler_types.go
@@ -179,8 +179,9 @@ func (e ErrorHandlerRef) Configuration() 
(map[string]interface{}, error) {
 
 // ErrorHandlerBean represents a bean error handler type
 type ErrorHandlerBean struct {
-       ErrorHandlerLog
-       BeanType *string `json:"type,omitempty"`
+       ErrorHandlerNone
+       BeanType       *string         `json:"type,omitempty"`
+       BeanProperties *BeanProperties `json:"properties,omitempty"`
 }
 
 // Type --
@@ -190,12 +191,23 @@ func (e ErrorHandlerBean) Type() ErrorHandlerType {
 
 // Configuration --
 func (e ErrorHandlerBean) Configuration() (map[string]interface{}, error) {
-       properties, err := e.ErrorHandlerLog.Configuration()
+       properties, err := e.ErrorHandlerNone.Configuration()
        if err != nil {
                return nil, err
        }
        properties[ErrorHandlerAppPropertiesPrefix] = fmt.Sprintf("#class:%v", 
*e.BeanType)
 
+       if e.BeanProperties != nil {
+               var beanProperties map[string]interface{}
+               err := json.Unmarshal(e.BeanProperties.RawMessage, 
&beanProperties)
+               if err != nil {
+                       return nil, err
+               }
+               for key, value := range beanProperties {
+                       properties[ErrorHandlerAppPropertiesPrefix+"."+key] = 
value
+               }
+       }
+
        return properties, err
 }
 
diff --git a/pkg/controller/kameletbinding/error_handler_test.go 
b/pkg/controller/kameletbinding/error_handler_test.go
index c6be802..94e6643 100644
--- a/pkg/controller/kameletbinding/error_handler_test.go
+++ b/pkg/controller/kameletbinding/error_handler_test.go
@@ -107,8 +107,8 @@ func TestParseErrorHandlerBeanWithParamsDoesSucceed(t 
*testing.T) {
                []byte(`{
                        "bean": {
                                "type": "com.acme.MyType",
-                               "parameters": 
-                                       {"param1": "value1", "param2": "value2"}
+                               "properties": 
+                                       {"beanProp1": "value1", "beanProp2": 
"value2"}
                        }
                }`),
        )
@@ -118,8 +118,8 @@ func TestParseErrorHandlerBeanWithParamsDoesSucceed(t 
*testing.T) {
        assert.Nil(t, err)
        assert.Equal(t, "#class:com.acme.MyType", 
parameters[v1alpha1.ErrorHandlerAppPropertiesPrefix])
        assert.Equal(t, v1alpha1.ErrorHandlerRefDefaultName, 
parameters[v1alpha1.ErrorHandlerRefName])
-       assert.Equal(t, "value1", 
parameters["camel.beans.defaultErrorHandler.param1"])
-       assert.Equal(t, "value2", 
parameters["camel.beans.defaultErrorHandler.param2"])
+       assert.Equal(t, "value1", 
parameters["camel.beans.defaultErrorHandler.beanProp1"])
+       assert.Equal(t, "value2", 
parameters["camel.beans.defaultErrorHandler.beanProp2"])
 }
 
 func TestParseErrorHandlerRefDoesSucceed(t *testing.T) {

Reply via email to