Example #1
0
        void Dequeue(object arg)
        {
            Uri bufferAddress = arg as Uri;

            Debug.Assert(bufferAddress != null);

            MessageBufferClient bufferClient = MessageBufferClient.GetMessageBuffer(m_Credential, bufferAddress);

            while (true)
            {
                Message message = null;

                try
                {
                    message = bufferClient.Retrieve();
                }
                catch (TimeoutException)
                {
                    Trace.WriteLine("Timed out before retirieving message");
                    continue;
                }
                if (message.Headers.Action == CloseAction)
                {
                    return;
                }
                else
                {
                    Dispatch(message);
                }
            }
        }
Example #2
0
        void DeleteBuffers(ServiceBusTreeNode treeNode)
        {
            if (treeNode.ServiceBusNode != null)
            {
                if (treeNode.ServiceBusNode.Policy != null)
                {
                    if (treeNode.ServiceBusNode.Policy is MessageBufferPolicy)
                    {
                        string nodeAddress = treeNode.ServiceBusNode.Address;
                        nodeAddress = nodeAddress.Replace(@"sb://", @"https://");

                        TransportClientEndpointBehavior credential = Graphs[ServiceNamespace.ToLower()].Credential;
                        Uri address = new Uri(nodeAddress);
                        try
                        {
                            MessageBufferClient.GetMessageBuffer(credential, address).DeleteMessageBuffer();
                        }
                        catch
                        {}
                    }
                }
            }
            foreach (TreeNode node in treeNode.Nodes)
            {
                DeleteBuffers(node as ServiceBusTreeNode);
            }
        }
Example #3
0
        private MessageBufferClient GetMessageBufferClient()
        {
            TransportClientEndpointBehavior behavior = GetACSSecurity(txtIssuerName.Text, txtIssuerKey.Text);
            Uri messageBufferUri = GetMessageBufferUri();

            return(MessageBufferClient.GetMessageBuffer(behavior, messageBufferUri));
        }
Example #4
0
        private MessageBufferClient GetOrCreateQueue(TransportClientEndpointBehavior sharedSecredServiceBusCredential, Uri queueUri, ref MessageBufferPolicy queuePolicy)
        {
            MessageBufferClient client;

            try
            {
                client = MessageBufferClient.GetMessageBuffer(sharedSecredServiceBusCredential, queueUri);
                MessageBufferPolicy currentQueuePolicy = client.GetPolicy();
                queuePolicy = currentQueuePolicy;
                // Queue already exists.
                return(client);
            }
            //catch (EndpointNotFoundException)
            catch (FaultException)
            {
                // Exception when retrieving the current queue policy.
                // Queue Not found; absorb and make a new queue below.
                // Other exceptions get bubbled up.
            }
            catch (Exception)
            {
            }
            try
            {
                client = MessageBufferClient.CreateMessageBuffer(sharedSecredServiceBusCredential, queueUri, queuePolicy);
            }
            catch (Exception)
            {
                throw;
            }
            //Created new Queue.
            return(client);
        }
Example #5
0
        void OnDragDrop(object sender, DragEventArgs args)
        {
            Cursor.Current = Cursors.Default;
            Debug.Assert(m_DraggedNode != null);

            ServiceBusTreeNode targetNode = GetTargetNode(args);

            if (targetNode.ServiceBusNode == null)
            {
                return;
            }
            if (targetNode.ServiceBusNode.Policy != null)//A router or a buffer
            {
                if (targetNode.ServiceBusNode.Policy is RouterPolicy)
                {
                    Trace.WriteLine("Droped at: " + targetNode.Text);
                    string draggedAddress = m_DraggedNode.ServiceBusNode.Address;
                    draggedAddress = draggedAddress.Replace(@"https://", @"sb://");
                    draggedAddress = draggedAddress.Replace(@"http://", @"sb://");

                    string targetAddress = targetNode.ServiceBusNode.Address;
                    targetAddress = targetAddress.Replace(@"https://", @"sb://");
                    targetAddress = targetAddress.Replace(@"http://", @"sb://");

                    TransportClientEndpointBehavior credential = Graphs[ServiceNamespace.ToLower()].Credential;

                    Uri draggedUri = new Uri(draggedAddress);
                    Uri targetUri  = new Uri(targetAddress);

                    try
                    {
                        RouterClient targetClient = RouterManagementClient.GetRouter(credential, targetUri);
                        if (m_DraggedNode.ServiceBusNode.Policy is RouterPolicy)
                        {
                            RouterClient draggedClient = RouterManagementClient.GetRouter(credential, draggedUri);

                            draggedClient.SubscribeToRouter(targetClient, TimeSpan.MaxValue);
                        }
                        else
                        {
                            MessageBufferClient draggedClient = MessageBufferClient.GetMessageBuffer(credential, draggedUri);

                            /* TODO Restore on next release
                             * draggedClient.SubscribeToRouter(targetClient,TimeSpan.MaxValue);
                             */
                        }
                        OnExplore(this, EventArgs.Empty);

                        m_ServiceBusTree.SelectedNode = targetNode;
                        m_ServiceBusTree.Select();
                    }
                    catch (Exception exception)
                    {
                        MessageBox.Show("Unable to subscribe: " + exception.Message, "Service Bus Explorer", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
            }
            m_DraggedNode = null;
        }
Example #6
0
        public new T CreateChannel()
        {
            Debug.Assert(Endpoint.Binding is NetOnewayRelayBinding);
            ServiceBusHelper.VerifyBuffer(Endpoint.Address.Uri.AbsoluteUri, ServiceBusCredentials);

            m_BufferClient = MessageBufferClient.GetMessageBuffer(ServiceBusCredentials, Endpoint.Address.Uri);

            return(base.CreateChannel());
        }
Example #7
0
 void SendCloseMessages()
 {
     foreach (Uri bufferAddress in m_BufferAddresses)
     {
         MessageBufferClient bufferClient = MessageBufferClient.GetMessageBuffer(m_Credential, bufferAddress);
         Message             message      = Message.CreateMessage(MessageVersion.Default, CloseAction);
         bufferClient.Send(message);
     }
 }
        public static void PurgeBuffer(Uri bufferAddress, TransportClientEndpointBehavior credential)
        {
            Debug.Assert(BufferExists(bufferAddress, credential));

            MessageBufferClient client = MessageBufferClient.GetMessageBuffer(credential, bufferAddress);
            MessageBufferPolicy policy = client.GetPolicy();

            client.DeleteMessageBuffer();
            MessageBufferClient.CreateMessageBuffer(credential, bufferAddress, policy);
        }
Example #9
0
        protected override T CreateChannel()
        {
            Debug.Assert(Endpoint.Binding is NetOnewayRelayBinding);

            m_BufferAddress = new Uri("https://" + Endpoint.Address.Uri.Host + Endpoint.Address.Uri.LocalPath);
            ServiceBusHelper.VerifyBuffer(m_BufferAddress.AbsoluteUri, Credential);

            m_BufferClient = MessageBufferClient.GetMessageBuffer(Credential, m_BufferAddress);

            return(base.CreateChannel());
        }
Example #10
0
        MessageBufferPolicy GetBufferPolicy(string address)
        {
            if (address.StartsWith(@"sb://"))
            {
                return(null);
            }

            Uri bufferAddress = new Uri(address);

            MessageBufferClient client = MessageBufferClient.GetMessageBuffer(Credential, bufferAddress);

            return(client.GetPolicy());
        }
        static void CreateBuffer(string bufferAddress, MessageBufferPolicy policy, TransportClientEndpointBehavior credential)
        {
            if (bufferAddress.EndsWith("/") == false)
            {
                bufferAddress += "/";
            }

            Uri address = new Uri(bufferAddress);

            if (BufferExists(address, credential))
            {
                MessageBufferClient client = MessageBufferClient.GetMessageBuffer(credential, address);
                client.DeleteMessageBuffer();
            }
            MessageBufferClient.CreateMessageBuffer(credential, address, policy);
        }
Example #12
0
        void ApplyPolicy(MessageBufferPolicy policy)
        {
            try
            {
                Uri address = new Uri(RealAddress.AbsoluteUri.Replace(@"sb://", @"https://"));

                MessageBufferClient client = MessageBufferClient.GetMessageBuffer(Credential, address);
                client.DeleteMessageBuffer();
                MessageBufferClient.CreateMessageBuffer(Credential, address, policy);
                Explore();
            }
            catch (Exception exception)
            {
                MessageBox.Show("Error applying change: " + exception.Message, "Service Bus Explorer", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        internal static bool BufferExists(Uri bufferAddress, TransportClientEndpointBehavior credential)
        {
            try
            {
                MessageBufferClient client = MessageBufferClient.GetMessageBuffer(credential, bufferAddress);
                MessageBufferPolicy policy = client.GetPolicy();
                if (policy.TransportProtection != TransportProtectionPolicy.AllPaths)
                {
                    throw new InvalidOperationException("Buffer must be configured for transport protection");
                }
                return(true);
            }
            catch (FaultException exception)
            {
                Debug.Assert(exception.Message == "Policy could not be retrieved: ContentType is incorrect");
            }

            return(false);
        }
Example #14
0
        public static void DeleteBuffer(string bufferAddress, string secret)
        {
            if (bufferAddress.EndsWith("/") == false)
            {
                bufferAddress += "/";
            }

            Uri address = new Uri(bufferAddress);

            TransportClientEndpointBehavior credential = new TransportClientEndpointBehavior();

            credential.TokenProvider = TokenProvider.CreateSharedSecretTokenProvider(DefaultIssuer, secret);

            if (BufferExists(address, credential))
            {
                MessageBufferClient client = MessageBufferClient.GetMessageBuffer(credential, address);
                client.DeleteMessageBuffer();
            }
        }
Example #15
0
        void OnDelete(object sender, EventArgs e)
        {
            DialogResult result = MessageBox.Show("Are you sure you want to delete the buffer?", "Service Bus Explorer", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation);

            if (result == DialogResult.No)
            {
                return;
            }
            try
            {
                Uri address = new Uri(RealAddress.AbsoluteUri.Replace(@"sb://", @"https://"));
                MessageBufferClient client = MessageBufferClient.GetMessageBuffer(Credential, address);
                client.DeleteMessageBuffer();
                Explore();
            }
            catch (Exception exception)
            {
                MessageBox.Show("Error deleting buffer: " + exception.Message, "Service Bus Explorer", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Example #16
0
        void Dequeue(object arg)
        {
            Uri bufferAddress = arg as Uri;

            Debug.Assert(bufferAddress != null);

            MessageBufferClient bufferClient = MessageBufferClient.GetMessageBuffer(m_Credential, bufferAddress);

            while (true)
            {
                Message message = bufferClient.Retrieve();
                if (message.Headers.Action == CloseAction)
                {
                    return;
                }
                else
                {
                    Dispatch(message);
                }
            }
        }
        public static void DeleteBuffer(string bufferAddress, string secret)
        {
            if (bufferAddress.EndsWith("/") == false)
            {
                bufferAddress += "/";
            }

            Uri address = new Uri(bufferAddress);

            TransportClientEndpointBehavior credential = new TransportClientEndpointBehavior();

            credential.CredentialType = TransportClientCredentialType.SharedSecret;
            credential.Credentials.SharedSecret.IssuerName   = DefaultIssuer;
            credential.Credentials.SharedSecret.IssuerSecret = secret;

            if (BufferExists(address, credential))
            {
                MessageBufferClient client = MessageBufferClient.GetMessageBuffer(credential, address);
                client.DeleteMessageBuffer();
            }
        }
Example #18
0
        void OnPurge(object sender, EventArgs e)
        {
            DialogResult result = MessageBox.Show("Are you sure you want to remove all messages?", "Service Bus Explorer", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation);

            if (result == DialogResult.No)
            {
                return;
            }
            try
            {
                Uri address = new Uri(RealAddress.AbsoluteUri.Replace(@"sb://", @"https://"));

                MessageBufferClient client = MessageBufferClient.GetMessageBuffer(Credential, address);
                MessageBufferPolicy policy = client.GetPolicy();
                ApplyPolicy(policy);
            }
            catch (Exception exception)
            {
                MessageBox.Show("Error purging buffer: " + exception.Message, "Service Bus Explorer", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Example #19
0
        private MessageBufferClient GetOrCreateQueue(TransportClientEndpointBehavior sharedSecredServiceBusCredential,
                                                     Uri queueUri, ref MessageBufferPolicy queuePolicy)
        {
            MessageBufferClient client;

            try
            {
                client      = MessageBufferClient.GetMessageBuffer(sharedSecredServiceBusCredential, queueUri);
                queuePolicy = client.GetPolicy();
                Console.WriteLine("Message buffer already exists at '{0}'.", client.MessageBufferUri);

                return(client);
            }
            catch (FaultException e)
            {
                // Not found. Ignore and make a new queue below.
                // Other exceptions get bubbled up.
            }

            client      = MessageBufferClient.CreateMessageBuffer(sharedSecredServiceBusCredential, queueUri, queuePolicy);
            queuePolicy = client.GetPolicy();
            Console.WriteLine("Message buffer created at '{0}'.", client.MessageBufferUri);
            return(client);
        }