public static void EncodeMessage(AmqpNmsMessageFacade messageFacade) { if (messageFacade.Message.MessageAnnotations == null) { messageFacade.Message.MessageAnnotations = new MessageAnnotations(); } messageFacade.Message.MessageAnnotations[SymbolUtil.JMSX_OPT_MSG_TYPE] = messageFacade.JmsMsgType; AmqpDestinationHelper.SetToAnnotationFromDestination(messageFacade.NMSDestination, messageFacade.Message.MessageAnnotations); AmqpDestinationHelper.SetReplyToAnnotationFromDestination(messageFacade.NMSReplyTo, messageFacade.Message.MessageAnnotations); }
private Source CreateSource() { Source source = new Source(); source.Address = AmqpDestinationHelper.GetDestinationAddress(info.Destination, session.Connection); source.Outcomes = new[] { SymbolUtil.ATTACH_OUTCOME_ACCEPTED, SymbolUtil.ATTACH_OUTCOME_RELEASED, SymbolUtil.ATTACH_OUTCOME_REJECTED, SymbolUtil.ATTACH_OUTCOME_MODIFIED }; source.DefaultOutcome = MessageSupport.MODIFIED_FAILED_INSTANCE; if (info.IsDurable) { source.ExpiryPolicy = SymbolUtil.ATTACH_EXPIRY_POLICY_NEVER; source.Durable = (int)TerminusDurability.UNSETTLED_STATE; source.DistributionMode = SymbolUtil.ATTACH_DISTRIBUTION_MODE_COPY; } else { source.ExpiryPolicy = SymbolUtil.ATTACH_EXPIRY_POLICY_SESSION_END; source.Durable = (int)TerminusDurability.NONE; } if (info.IsBrowser) { source.DistributionMode = SymbolUtil.ATTACH_DISTRIBUTION_MODE_COPY; } source.Capabilities = new[] { SymbolUtil.GetTerminusCapabilitiesForDestination(info.Destination) }; Map filters = new Map(); if (info.NoLocal) { filters.Add(SymbolUtil.ATTACH_FILTER_NO_LOCAL, AmqpNmsNoLocalType.NO_LOCAL); } if (info.HasSelector) { filters.Add(SymbolUtil.ATTACH_FILTER_SELECTOR, new AmqpNmsSelectorType(info.Selector)); } if (filters.Count > 0) { source.FilterSet = filters; } return(source); }
private Target CreateTarget() { Target target = new Target(); target.Address = AmqpDestinationHelper.GetDestinationAddress(info.Destination, session.Connection); // Durable is used for a durable subscription target.Durable = (uint)TerminusDurability.NONE; if (info.Destination != null) { target.Capabilities = new[] { SymbolUtil.GetTerminusCapabilitiesForDestination(info.Destination) }; } target.Dynamic = false; return(target); }
private Source CreateSource() { Source source = new Source(); source.Address = AmqpDestinationHelper.GetDestinationAddress(info.Destination, session.Connection); source.Outcomes = new[] { SymbolUtil.ATTACH_OUTCOME_ACCEPTED, SymbolUtil.ATTACH_OUTCOME_RELEASED, SymbolUtil.ATTACH_OUTCOME_REJECTED, SymbolUtil.ATTACH_OUTCOME_MODIFIED }; source.DefaultOutcome = MessageSupport.MODIFIED_FAILED_INSTANCE; if (info.IsDurable) { source.ExpiryPolicy = SymbolUtil.ATTACH_EXPIRY_POLICY_NEVER; source.Durable = (int)TerminusDurability.UNSETTLED_STATE; source.DistributionMode = SymbolUtil.ATTACH_DISTRIBUTION_MODE_COPY; } else { source.ExpiryPolicy = SymbolUtil.ATTACH_EXPIRY_POLICY_SESSION_END; source.Durable = (int)TerminusDurability.NONE; } if (info.IsBrowser) { source.DistributionMode = SymbolUtil.ATTACH_DISTRIBUTION_MODE_COPY; } source.Capabilities = new[] { SymbolUtil.GetTerminusCapabilitiesForDestination(info.Destination) }; Map filters = new Map(); // TODO add filters for noLocal and Selector using appropriate Amqp Described types // No Local // qpid jms defines a no local filter as an amqp described type // AmqpJmsNoLocalType where // Descriptor = 0x0000468C00000003UL // Described = "NoLocalFilter{}" (type string) if (info.NoLocal) { filters.Add(SymbolUtil.ATTACH_FILTER_NO_LOCAL, "NoLocalFilter{}"); } // Selector // qpid jms defines a selector filter as an amqp described type // AmqpJmsSelectorType where // Descriptor = 0x0000468C00000004UL // Described = "<selector_string>" (type string) if (info.HasSelector) { filters.Add(SymbolUtil.ATTACH_FILTER_SELECTOR, info.Selector); } // Assign filters if (filters.Count > 0) { source.FilterSet = filters; } return(source); }