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) {
