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

Reply via email to