This is an automated email from the ASF dual-hosted git repository. squakez pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel-k.git
commit 1ad7f909bb696486badbedfc655fdbc783dbe993 Author: Keerthan <[email protected]> AuthorDate: Thu Sep 24 22:49:33 2026 +0530 Fix #5935: Allow multicast routing type in ArkMQ address binding --- pkg/util/bindings/arkmq.go | 4 ---- pkg/util/bindings/arkmq_test.go | 46 ++++++++++++++++++++++++++++++++++++----- 2 files changed, 41 insertions(+), 9 deletions(-) diff --git a/pkg/util/bindings/arkmq.go b/pkg/util/bindings/arkmq.go index 10f70e709..ff5188b23 100644 --- a/pkg/util/bindings/arkmq.go +++ b/pkg/util/bindings/arkmq.go @@ -182,10 +182,6 @@ func (a ArkMQBindingProvider) fromAddressToCamel(ctx BindingContext, endpoint ca return nil, err } - if address.Spec.RoutingType == "multicast" { - return nil, fmt.Errorf("multicast addresses (topics) are not supported on queue binding %s", endpoint.Ref.Name) - } - if address.Spec.QueueName != "" { queueName = address.Spec.QueueName } else if address.Spec.AddressName != "" { diff --git a/pkg/util/bindings/arkmq_test.go b/pkg/util/bindings/arkmq_test.go index 1fac85d00..7b5976842 100644 --- a/pkg/util/bindings/arkmq_test.go +++ b/pkg/util/bindings/arkmq_test.go @@ -145,22 +145,53 @@ func TestArkMQLookupAddress(t *testing.T) { }, binding.ApplicationProperties) } -func TestArkMQMulticastUnsupported(t *testing.T) { +func TestArkMQMulticastSupported(t *testing.T) { ctx, cancel := context.WithCancel(context.Background()) defer cancel() + broker := &arkmqv1beta1.ActiveMQArtemis{ + ObjectMeta: metav1.ObjectMeta{ + Namespace: "test", + Name: "mybroker", + }, + Status: arkmqv1beta1.ActiveMQArtemisStatus{ + PortStatus: []arkmqv1beta1.ActiveMQArtemisPortStatus{ + { + Name: "core", + Port: 61616, + }, + }, + }, + } + address := &arkmqv1beta1.ActiveMQArtemisAddress{ ObjectMeta: metav1.ObjectMeta{ Namespace: "test", Name: "mytopic", }, Spec: arkmqv1beta1.ActiveMQArtemisAddressSpec{ + AddressName: "my-multicast-topic", RoutingType: "multicast", ApplyTo: "mybroker", }, } - client, err := internal.NewFakeClient(address) + svc := &corev1.Service{ + ObjectMeta: metav1.ObjectMeta{ + Namespace: "test", + Name: "mybroker-hdls-svc", + }, + Spec: corev1.ServiceSpec{ + Ports: []corev1.ServicePort{ + { + Name: "core", + Port: 61616, + }, + }, + }, + } + + client, err := internal.NewFakeClient(broker, address, svc) require.NoError(t, err) bindingContext := BindingContext{ @@ -180,11 +211,16 @@ func TestArkMQMulticastUnsupported(t *testing.T) { provider := ArkMQBindingProvider{} - _, err = provider.Translate(bindingContext, EndpointContext{ + binding, err := provider.Translate(bindingContext, EndpointContext{ Type: camelv1.EndpointTypeSink, }, endpoint) - require.Error(t, err) - assert.Contains(t, err.Error(), "multicast addresses (topics) are not supported on queue binding mytopic") + require.NoError(t, err) + assert.NotNil(t, binding) + assert.Equal(t, "amqp:queue:my-multicast-topic", binding.URI) + assert.Equal(t, map[string]string{ + "quarkus.qpid-jms.url": "amqp://mybroker-hdls-svc.test.svc:61616", + "camel.component.amqp.broker-url": "amqp://mybroker-hdls-svc.test.svc:61616", + }, binding.ApplicationProperties) } func TestArkMQLookupAddressByName(t *testing.T) {
