Apologies for that, I wanted to avoid mixing the whitespace changes with the functional code changes. So I applied whitespace changes to mono-clean (from trunk r99588) and created a patch for that (attached to the previous email), then created the functional patch against that checkout of mono-clean.

I have attached a patch that bundles the 2 to this email.

Regards,
Michael Barker.

Andreas Färber wrote:
Hi,

Am 02.04.2008 um 22:30 schrieb Michael Barker:

I am interested in working on an implementation of System.Messaging.

In that case it would be best if you used the Subversion repository and created your patch using svn diff. Currently it is unclear what version/revision your mono-clean refers to. (Can't comment on the code itself.)

Regards,

Andreas

diff -Naur -X exclude mono-clean/mcs/class/System.Messaging/System.Messaging/Message.cs mono/mcs/class/System.Messaging/System.Messaging/Message.cs --- mono-clean/mcs/class/System.Messaging/System.Messaging/Message.cs 2008-04-02 15:10:35.000000000 +0100 +++ mono/mcs/class/System.Messaging/System.Messaging/Message.cs 2008-04-02 13:57:49.000000000 +0100
Index: class/System.Messaging/Test/System.Messaging/MessageTest.cs
===================================================================
--- class/System.Messaging/Test/System.Messaging/MessageTest.cs	(revision 0)
+++ class/System.Messaging/Test/System.Messaging/MessageTest.cs	(revision 0)
@@ -0,0 +1,220 @@
+using System;
+using System.Messaging;
+using System.Reflection;
+using NUnit.Framework;
+
+namespace MonoTests.System.Messaging
+{
+	[TestFixture]
+	public class MessageTest 
+	{
+		[Test]
+		public void CheckDefaultValues ()
+		{
+			Message m = new Message ();
+			Assert.IsNull (m.Body, "Body default should be Null");
+			Assert.AreEqual (typeof (XmlMessageFormatter), m.Formatter.GetType (),
+					"Formatter default should be XmlMessageFormatter");
+			Assert.AreEqual (AcknowledgeTypes.None, m.AcknowledgeType, 
+					"AnknowledgeType default should be None");
+			Assert.AreEqual (null, m.AdministrationQueue, 
+					"AdministrationQueue default should be null");
+			Assert.AreEqual (0, m.AppSpecific, "AppSpecific default should be 0");
+			Assert.AreEqual (true, m.AttachSenderId, "AttachSenderId default should be true");
+			Assert.AreEqual ("", m.AuthenticationProviderName, 
+					"AuthenticationProviderName should default to \"\"");
+			Assert.AreEqual (CryptographicProviderType.RsaFull, m.AuthenticationProviderType, 
+					"AuthenticationProviderType should default to RsaFull");
+			Assert.AreEqual (null, m.BodyStream, "BodyStream should default to null");
+			Assert.AreEqual (Guid.Empty, m.ConnectorType, "ConnectorType should default to empty");
+			Assert.AreEqual (null, m.CorrelationId, "CorrelationId should default to null");
+			Assert.AreEqual (new byte[0], m.DestinationSymmetricKey, 
+					"DestinationSymmetricKey should default to an empty array");
+			Assert.AreEqual (new byte[0], m.DigitalSignature,
+					"DigitalSignature default to an empty array");
+			Assert.AreEqual (EncryptionAlgorithm.Rc2, m.EncryptionAlgorithm,
+					"EncryptionAlgorithm should default to Rc2");
+			Assert.AreEqual (new byte[0], m.Extension, 
+					"Extension should default to an empty array");
+			Assert.AreEqual (HashAlgorithm.Sha, m.HashAlgorithm, 
+					"Extension should default to Sha");
+			Assert.AreEqual ("", m.Label, "Label should default to \"\"");
+			Assert.AreEqual (MessagePriority.Normal, m.Priority,
+					"Priority should default to Normal");
+			Assert.AreEqual (false, m.Recoverable, "Recoverable should default to false");
+			Assert.AreEqual (null, m.ResponseQueue, "ResponseQueue should default to null");
+			//Assert.AreEqual (null, m.SecurityContext, "SecurityContext should default to null");
+			Assert.AreEqual (new byte[0], m.SenderCertificate, 
+					"SenderCertificate should default to an empty array");
+			Assert.AreEqual (Message.InfiniteTimeout, m.TimeToBeReceived,
+					"TimeToBeReceived should default to InfiniteTimeout");
+			Assert.AreEqual (Message.InfiniteTimeout, m.TimeToReachQueue,
+					"TimeToReadQueue should default to InfiniteTimeout");
+			Assert.AreEqual (false, m.UseAuthentication, 
+					"UseAuthentication should default to false");
+			Assert.AreEqual (false, m.UseDeadLetterQueue,
+					"UseDeadLetterQueue should default to false");
+			Assert.AreEqual (false, m.UseEncryption, "Encryption should default to false");
+			Assert.AreEqual (false, m.UseJournalQueue, 
+					"UseJournalQueue should default to false");
+			Assert.AreEqual (false, m.UseTracing, "UseTracing should default to false");
+		}
+
+		[Test]
+		public void CheckProperties ()
+		{
+			Message m = new Message();
+			CheckProperty (m, "Formatter", new BinaryMessageFormatter());
+			CheckProperty (m, "AcknowledgeType", AcknowledgeTypes.FullReceive);  
+			//CheckProperty (m, "AdministrationQueue", new MessageQueue()); 
+			CheckProperty (m, "AppSpecific", 42);
+			CheckProperty (m, "AttachSenderId", false);
+			CheckProperty (m, "AuthenticationProviderName", "something-else");
+			CheckProperty (m, "AuthenticationProviderType", CryptographicProviderType.Dss); 
+			CheckProperty (m, "ConnectorType", Guid.NewGuid());
+			CheckProperty (m, "CorrelationId", "something-else");
+			CheckProperty (m, "DestinationSymmetricKey", new byte[] { 0xFF });
+			CheckProperty (m, "DigitalSignature", new byte[] { 0xFF });
+			CheckProperty (m, "EncryptionAlgorithm", EncryptionAlgorithm.Rc4); 
+			CheckProperty (m, "Extension", new byte[] { 0xFF });
+			CheckProperty (m, "Label", "something-else");
+			CheckProperty (m, "Priority", MessagePriority.High);
+			CheckProperty (m, "Recoverable", true);
+			//CheckProperty (m, "ResponseQueue", new MessageQueue());
+			//Assert.AreEqual (null, m.SecurityContext, "SecurityContext should default to null");
+			CheckProperty (m, "SenderCertificate", new byte[] { 0xFF }); 
+			CheckProperty (m, "TimeToBeReceived", new TimeSpan(42));
+			CheckProperty (m, "TimeToReachQueue", new TimeSpan(42));
+			CheckProperty (m, "UseAuthentication", true); 
+			CheckProperty (m, "UseDeadLetterQueue", true);
+			CheckProperty (m, "UseEncryption", true);
+			CheckProperty (m, "UseJournalQueue", true); 
+			CheckProperty (m, "UseTracing", true); 
+		}
+
+		private void CheckProperty(object o, string propertyName, object val)
+		{
+			Type t = o.GetType();
+			PropertyInfo p = t.GetProperty(propertyName);
+			p.SetValue(o, val, new object[0]);
+			object newVal = p.GetValue(o, new object[0]);
+			Assert.AreEqual (val, newVal, "Property " + propertyName + " failed");
+		}
+		
+		[Test]
+		[ExpectedException (typeof (InvalidOperationException))]
+		public void UnsentAcknowledgment ()
+		{
+			Message m = new Message ();
+			object o = m.Acknowledgment;
+		}
+
+		[Test]
+		[ExpectedException (typeof (InvalidOperationException))]
+		public void UnsentDestinationQueue ()
+		{
+			Message m = new Message ();
+			object o = m.DestinationQueue;
+		}
+
+		[Test]
+		[ExpectedException (typeof (InvalidOperationException))]
+		public void UnsentId ()
+		{
+			Message m = new Message ();
+			object o = m.Id;
+		}
+
+		[Test]
+		[ExpectedException (typeof (InvalidOperationException))]
+		public void UnsentIsFirstInTransactoin ()
+		{
+			Message m = new Message ();
+			object o = m.IsFirstInTransaction;
+		}
+
+		[Test]
+		[ExpectedException (typeof (InvalidOperationException))]
+		public void UnsentIsLastInTransactoin ()
+		{
+			Message m = new Message ();
+			object o = m.IsLastInTransaction;
+		}
+
+		[Test]
+		[ExpectedException (typeof (InvalidOperationException))]
+		public void UnsentMessageType ()
+		{
+			Message m = new Message ();
+			object o = m.MessageType;
+		}
+
+		[Test]
+		[ExpectedException (typeof (InvalidOperationException))]
+		public void UnsentSenderId ()
+		{
+			Message m = new Message ();
+			object o = m.SenderId;
+		}
+
+		[Test]
+		[ExpectedException (typeof (InvalidOperationException))]
+		public void UnsentSentTime ()
+		{
+			Message m = new Message ();
+			object o = m.SentTime;
+		}
+
+		[Test]
+		[ExpectedException (typeof (InvalidOperationException))]
+		public void UnsentSenderVersion ()
+		{
+			Message m = new Message ();
+			object o = m.SenderVersion;
+		}
+
+		[Test]
+		[ExpectedException (typeof (InvalidOperationException))]
+		public void UnsentSourceMachine ()
+		{
+			Message m = new Message ();
+			object o = m.SourceMachine;
+		}
+
+		[Test]
+		[ExpectedException (typeof (InvalidOperationException))]
+		public void UnsentTransactionId ()
+		{
+			Message m = new Message ();
+			object o = m.TransactionId;
+		}
+		
+		[Test]
+		[ExpectedException (typeof (InvalidOperationException))]
+		public void UnsentTransactionStatusQueue ()
+		{
+			Message m = new Message ();
+			object o = m.TransactionStatusQueue;
+		}
+
+		[Test]
+		public void ConstructOneArg ()
+		{
+			string s = "this is a test string";
+			Message m = new Message (s);
+			Assert.AreEqual (s, m.Body, "body should be a simple string");
+			Assert.AreEqual (typeof (XmlMessageFormatter), m.Formatter.GetType (),
+					"Formatter should be XmlMessageFormatter");
+		}
+
+		[Test]
+		public void ConstructTwoArgs ()
+		{
+			String s = "this is a test string";
+			Message m = new Message (s, new BinaryMessageFormatter ());
+			Assert.AreEqual (s, m.Body, "Body should be a simple string");
+			Assert.AreEqual (typeof (BinaryMessageFormatter), m.Formatter.GetType(),
+					"Formatter should be BinaryMessageFormatter");
+		}
+	}
+}
Index: class/System.Messaging/System.Messaging/Message.cs
===================================================================
--- class/System.Messaging/System.Messaging/Message.cs	(revision 99741)
+++ class/System.Messaging/System.Messaging/Message.cs	(working copy)
@@ -1,12 +1,12 @@
-//
-// System.Messaging
-//
-// Authors:
-//      Peter Van Isacker ([EMAIL PROTECTED])
-//      Rafael Teixeira   ([EMAIL PROTECTED])
-//
-// (C) 2003 Peter Van Isacker
-//
+//
+// System.Messaging
+//
+// Authors:
+//      Peter Van Isacker ([EMAIL PROTECTED])
+//      Rafael Teixeira   ([EMAIL PROTECTED])
+//
+// (C) 2003 Peter Van Isacker
+//
 
 //
 // Permission is hereby granted, free of charge, to any person obtaining
@@ -28,436 +28,412 @@
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
-
-using System;
-using System.IO;
-using System.ComponentModel;
-
-namespace System.Messaging 
-{
-	[DesignerAttribute ("System.Messaging.Design.MessageDesigner, " + Consts.AssemblySystem_Design)]
-	public class Message: Component 
-	{
-		#region Constructor
-		
-		[MonoTODO]
-		public Message()
-		{
-		}
-
-		[MonoTODO]
-		public Message (object body)
-		{
-		}
-
-		[MonoTODO]
-		public Message (object body, IMessageFormatter formatter)
-		{
-		}
-		
-		#endregion //Constructor
-		
-		[MonoTODO]
-		public static readonly TimeSpan InfiniteTimeout;
-		
-		#region Properties
-
-		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
-		[ReadOnly (true)]
-		[MessagingDescription ("MsgAcknowledgeType")]
-		public AcknowledgeTypes AcknowledgeType {
-			[MonoTODO]
-			get {throw new NotImplementedException();}
-			[MonoTODO]
-			set {throw new NotImplementedException();}
-		}
-
-		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
-		[ReadOnly (true)]
-		[MessagingDescription ("MsgAcknowledgement")]
-		public Acknowledgment Acknowledgment {
-			[MonoTODO]
-			get {throw new NotImplementedException();}
-		}
-
-		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
-		[ReadOnly (true)]
-		[MessagingDescription ("MsgAdministrationQueue")]
-		public MessageQueue AdministrationQueue {
-			[MonoTODO]
-			get {throw new NotImplementedException();}
-			[MonoTODO]
-			set {throw new NotImplementedException();}
-		}
-
-		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
-		[ReadOnly (true)]
-		[MessagingDescription ("MsgAppSpecific")]
-		public int AppSpecific {
-			[MonoTODO]
-			get {throw new NotImplementedException();}
-			[MonoTODO]
-			set {throw new NotImplementedException();}
-		}
-
-		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
-		[MessagingDescription ("MsgArrivedTime")]
-		public DateTime ArrivedTime {
-			[MonoTODO]
-			get {throw new NotImplementedException();}
-		}
-
-		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
-		[ReadOnly (true)]
-		[MessagingDescription ("MsgAttachSenderId")]
-		public bool AttachSenderId {
-			[MonoTODO]
-			get {throw new NotImplementedException();}
-			[MonoTODO]
-			set {throw new NotImplementedException();}
-		}
-
-		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
-		[MessagingDescription ("MsgAuthenticated")]
-		public bool Authenticated {
-			[MonoTODO]
-			get {throw new NotImplementedException();}
-		}
-
-		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
-		[ReadOnly (true)]
-		[MessagingDescription ("MsgAuthenticationProviderName")]
-		public string AuthenticationProviderName {
-			[MonoTODO]
-			get {throw new NotImplementedException();}
-			[MonoTODO]
-			set {throw new NotImplementedException();}
-		}
-
-		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
-		[ReadOnly (true)]
-		[MessagingDescription ("MsgAuthenticationProviderType")]
-		public CryptographicProviderType AuthenticationProviderType {
-			[MonoTODO]
-			get {throw new NotImplementedException();}
-			[MonoTODO]
-			set {throw new NotImplementedException();}
-		}
-
-		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
-		[Browsable (false)]
-		public object Body {
-			[MonoTODO]
-			get {throw new NotImplementedException();}
-			[MonoTODO]
-			set {throw new NotImplementedException();}
-		}
-
-		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
-		[ReadOnly (true)]
-		[Editor ("System.ComponentModel.Design.BinaryEditor, " + Consts.AssemblySystem_Design, "System.Drawing.Design.UITypeEditor, " + Consts.AssemblySystem_Drawing)]
-		[MessagingDescription ("MsgBodyStream")]
-		public Stream BodyStream {
-			[MonoTODO]
-			get {throw new NotImplementedException();}
-			[MonoTODO]
-			set {throw new NotImplementedException();}
-		}
-
-		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
-		[MessagingDescription ("MsgBodyType")]
-		[ReadOnly (true)]
-		public int BodyType {
-			[MonoTODO]
-			get {throw new NotImplementedException();}
-			[MonoTODO]
-			set {throw new NotImplementedException();}
-		}
-
-		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
-		[ReadOnly (true)]
-		[MessagingDescription ("MsgConnectorType")]
-		public Guid ConnectorType {
-			[MonoTODO]
-			get {throw new NotImplementedException();}
-			[MonoTODO]
-			set {throw new NotImplementedException();}
-		}
-
-		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
-		[ReadOnly (true)]
-		[MessagingDescription ("MsgCorrelationId")]
-		public string CorrelationId {
-			[MonoTODO]
-			get {throw new NotImplementedException();}
-			[MonoTODO]
-			set {throw new NotImplementedException();}
-		}
-
-		[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
-		[MessagingDescription("MsgDestinationQueue")]
-		public MessageQueue DestinationQueue {
-			[MonoTODO]
-			get {throw new NotImplementedException();}
-		}
-
-		[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
-		[ReadOnly(true)]
-		[MessagingDescription("MsgDestinationSymmetricKey")]
-		public byte[] DestinationSymmetricKey {
-			[MonoTODO]
-			get {throw new NotImplementedException();}
-			[MonoTODO]
-			set {throw new NotImplementedException();}
-		}
-
-		[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
-		[ReadOnly(true)]
-		[MessagingDescription("MsgDigitalSignature")]
-		public byte[] DigitalSignature {
-			[MonoTODO]
-			get {throw new NotImplementedException();}
-			[MonoTODO]
-			set {throw new NotImplementedException();}
-		}
-
-		[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
-		[ReadOnly(true)]
-		[MessagingDescription("MsgEncryptionAlgorithm")]
-		public EncryptionAlgorithm EncryptionAlgorithm {
-			[MonoTODO]
-			get {throw new NotImplementedException();}
-			[MonoTODO]
-			set {throw new NotImplementedException();}
-		}
-
-		[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
-		[ReadOnly(true)]
-		[MessagingDescription("MsgExtension")]
-		public byte[] Extension {
-			[MonoTODO]
-			get {throw new NotImplementedException();}
-			[MonoTODO]
-			set {throw new NotImplementedException();}
-		}
-
-		[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
-		[Browsable(false)]
-		public IMessageFormatter Formatter {
-			[MonoTODO]
-			get {throw new NotImplementedException();}
-			[MonoTODO]
-			set {throw new NotImplementedException();}
-		}
-
-		[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
-		[ReadOnly(true)]
-		[MessagingDescription("MsgHashAlgorithm")]
-		public HashAlgorithm HashAlgorithm {
-			[MonoTODO]
-			get {throw new NotImplementedException();}
-			[MonoTODO]
-			set {throw new NotImplementedException();}
-		}
-
-		[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
-		[ReadOnly(true)]
-		[MessagingDescription("MsgId")]
-		public string Id {
-			[MonoTODO]
-			get {throw new NotImplementedException();}
-		}
-
-		[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
-		[MessagingDescription("MsgIsFirstInTransaction")]
-		public bool IsFirstInTransaction {
-			[MonoTODO]
-			get {throw new NotImplementedException();}
-		}
-
-		[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
-		[MessagingDescription("MsgIsLastInTransaction")]
-		public bool IsLastInTransaction {
-			[MonoTODO]
-			get {throw new NotImplementedException();}
-		}
-
-		[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
-		[ReadOnly(true)]
-		[MessagingDescription("MsgLabel")]
-		public string Label {
-			[MonoTODO]
-			get {throw new NotImplementedException();}
-			[MonoTODO]
-			set {throw new NotImplementedException();}
-		}
-
-		[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
-		[MessagingDescription("MsgMessageType")]
-		public MessageType MessageType {
-			[MonoTODO]
-			get {throw new NotImplementedException();}
-		}
-
-		[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
-		[ReadOnly(true)]
-		[MessagingDescription("MsgPriority")]
-		public MessagePriority Priority {
-			[MonoTODO]
-			get {throw new NotImplementedException();}
-			[MonoTODO]
-			set {throw new NotImplementedException();}
-		}
-
-		[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
-		[ReadOnly(true)]
-		[MessagingDescription("MsgRecoverable")]
-		public bool Recoverable {
-			[MonoTODO]
-			get {throw new NotImplementedException();}
-			[MonoTODO]
-			set {throw new NotImplementedException();}
-		}
-
-		[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
-		[ReadOnly(true)]
-		[MessagingDescription("MsgResponseQueue")]
-		public MessageQueue ResponseQueue {
-			[MonoTODO]
-			get {throw new NotImplementedException();}
-			[MonoTODO]
-			set {throw new NotImplementedException();}
-		}
-
-		[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
-		[ReadOnly(true)]
-		[MessagingDescription("MsgSenderCertificate")]
-		public byte[] SenderCertificate {
-			[MonoTODO]
-			get {throw new NotImplementedException();}
-			[MonoTODO]
-			set {throw new NotImplementedException();}
-		}
-
-		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
-		[MessagingDescription ("MsgSenderId")]
-		public byte[] SenderId {
-			[MonoTODO]
-			get {throw new NotImplementedException();}
-		}
-
-		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
-		[ReadOnly (true)]
-		[MessagingDescription ("MsgSenderVersion")]
-		public long SenderVersion {
-			[MonoTODO]
-			get {throw new NotImplementedException();}
-		}
-
-		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
-		[ReadOnly (true)]
-		[MessagingDescription ("MsgSentTime")]
-		public DateTime SentTime {
-			[MonoTODO]
-			get {throw new NotImplementedException();}
-		}
-
-		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
-		[MessagingDescription ("MsgSourceMachine")]
-		public string SourceMachine {
-			[MonoTODO]
-			get {throw new NotImplementedException();}
-		}
-
-		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
-		[ReadOnly (true)]
-		[MessagingDescription ("MsgTimeToBeReceived")]
-		[TypeConverter (typeof(TimeoutConverter))]
-		public TimeSpan TimeToBeReceived {
-			[MonoTODO]
-			get {throw new NotImplementedException();}
-			[MonoTODO]
-			set {throw new NotImplementedException();}
-		}
-
-		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
-		[ReadOnly (true)]
-		[MessagingDescription ("MsgTimeToReachQueue")]
-		[TypeConverter (typeof(TimeoutConverter))]
-		public TimeSpan TimeToReachQueue {
-			[MonoTODO]
-			get {throw new NotImplementedException();}
-			[MonoTODO]
-			set {throw new NotImplementedException();}
-		}
-
-		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
-		[MessagingDescription ("MsgTransactionId")]
-		public string TransactionId {
-			[MonoTODO]
-			get {throw new NotImplementedException();}
-		}
-
-		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
-		[ReadOnly (true)]
-		[MessagingDescription ("MsgTransactionStatusQueue")]
-		public MessageQueue TransactionStatusQueue {
-			[MonoTODO]
-			get {throw new NotImplementedException();}
-			[MonoTODO]
-			set {throw new NotImplementedException();}
-		}
-
-		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
-		[ReadOnly (true)]
-		[MessagingDescription ("MsgUseAuthentication")]
-		public bool UseAuthentication {
-			[MonoTODO]
-			get {throw new NotImplementedException();}
-			[MonoTODO]
-			set {throw new NotImplementedException();}
-		}
-
-		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
-		[ReadOnly (true)]
-		[MessagingDescription ("MsgUseDeadLetterQueue")]
-		public bool UseDeadLetterQueue {
-			[MonoTODO]
-			get {throw new NotImplementedException();}
-			[MonoTODO]
-			set {throw new NotImplementedException();}
-		}
-
-		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
-		[ReadOnly (true)]
-		[MessagingDescription ("MsgUseEncryption")]
-		public bool UseEncryption {
-			[MonoTODO]
-			get {throw new NotImplementedException();}
-			[MonoTODO]
-			set {throw new NotImplementedException();}
-		}
-
-		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
-		[ReadOnly (true)]
-		[MessagingDescription ("MsgUseJournalQueue")]
-		public bool UseJournalQueue {
-			[MonoTODO]
-			get {throw new NotImplementedException();}
-			[MonoTODO]
-			set {throw new NotImplementedException();}
-		}
-
-		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
-		[ReadOnly (true)]
-		[MessagingDescription ("MsgUseTracing")]
-		public bool UseTracing {
-			[MonoTODO]
-			get {throw new NotImplementedException();}
-			[MonoTODO]
-			set {throw new NotImplementedException();}
-		}
-
-		#endregion //Properties
-	}
-}
+
+using System;
+using System.IO;
+using System.ComponentModel;
+
+namespace System.Messaging 
+{
+	[DesignerAttribute ("System.Messaging.Design.MessageDesigner, " + Consts.AssemblySystem_Design)]
+	public class Message : Component 
+	{
+		private static readonly byte[] EMPTY = new byte[0];
+		private AcknowledgeTypes acknowledgeType = AcknowledgeTypes.None;
+		private MessageQueue administrationQueue = null;
+		private int appSpecific = 0;
+		private bool attachSenderId = true;
+		private String authenticationProviderName = String.Empty;
+		private CryptographicProviderType authenticationProviderType = 
+			CryptographicProviderType.RsaFull;
+		private object body;
+		private Stream bodyStream = null;
+		private Guid connectorType = Guid.Empty;
+		private string correlationId = null;
+		private byte[] destinationSymmetricKey = EMPTY;
+		private byte[] digitalSignature = EMPTY;
+		private EncryptionAlgorithm encryptionAlgorithm = EncryptionAlgorithm.Rc2;
+		private byte[] extension = EMPTY;
+		private IMessageFormatter formatter;
+		private HashAlgorithm hashAlgorithm = HashAlgorithm.Sha;
+		private string label = String.Empty;
+		private MessagePriority priority = MessagePriority.Normal;
+		private bool recoverable = false;
+		private MessageQueue responseQueue = null;
+		//private SecurityContext securityContext = null;
+		private byte[] senderCertificate = EMPTY;
+		private TimeSpan timeToBeReceived = InfiniteTimeout;
+		private TimeSpan timeToReachQueue = InfiniteTimeout;
+		private bool useAuthentication = false;
+		private bool useDeadLetterQueue = false;
+		private bool useEncryption = false;
+		private bool useJournalQueue = false;
+		private bool useTracing = false;
+
+
+		#region Constructor
+		
+		public Message () : this (null, new XmlMessageFormatter())
+		{
+		}
+
+		public Message (object body) : this (body, new XmlMessageFormatter())
+ 		{
+		}
+
+		public Message (object body, IMessageFormatter formatter)
+		{
+			this.body = body;
+			this.formatter = formatter;
+		}
+		
+		#endregion //Constructor
+		
+		[MonoTODO]
+		public static readonly TimeSpan InfiniteTimeout;
+		
+		#region Properties
+
+		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+		[ReadOnly (true)]
+		[MessagingDescription ("MsgAcknowledgeType")]
+		public AcknowledgeTypes AcknowledgeType {
+			get { return acknowledgeType; }
+			set { acknowledgeType = value; }
+		}
+
+		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+		[ReadOnly (true)]
+		[MessagingDescription ("MsgAcknowledgement")]
+		public Acknowledgment Acknowledgment {
+			get {
+				throw new InvalidOperationException("Message has not been sent");
+			}
+		}
+
+		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+		[ReadOnly (true)]
+		[MessagingDescription ("MsgAdministrationQueue")]
+		public MessageQueue AdministrationQueue {
+			get { return administrationQueue; }
+			set { administrationQueue = value; }
+		}
+
+		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+		[ReadOnly (true)]
+		[MessagingDescription ("MsgAppSpecific")]
+		public int AppSpecific {
+			get { return appSpecific; }
+			set { appSpecific = value; }
+		}
+
+		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+		[MessagingDescription ("MsgArrivedTime")]
+		public DateTime ArrivedTime {
+			get { throw new InvalidOperationException ("Message has not been sent"); }
+		}
+
+		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+		[ReadOnly (true)]
+		[MessagingDescription ("MsgAttachSenderId")]
+		public bool AttachSenderId {
+			get { return attachSenderId; }
+			set { attachSenderId = value; }
+		}
+
+		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+		[MessagingDescription ("MsgAuthenticated")]
+		public bool Authenticated {
+			get { throw new InvalidOperationException ("Message has not been sent");}
+		}
+
+		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+		[ReadOnly (true)]
+		[MessagingDescription ("MsgAuthenticationProviderName")]
+		public string AuthenticationProviderName {
+			get { return authenticationProviderName; }
+			set { authenticationProviderName = value; }
+		}
+
+		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+		[ReadOnly (true)]
+		[MessagingDescription ("MsgAuthenticationProviderType")]
+		public CryptographicProviderType AuthenticationProviderType {
+			get { return authenticationProviderType; }
+			set { authenticationProviderType = value; }
+		}
+
+		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+		[Browsable (false)]
+		public object Body {
+			get { return body; }
+			set { body = value; }
+		}
+
+		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+		[ReadOnly (true)]
+		[Editor ("System.ComponentModel.Design.BinaryEditor, " + Consts.AssemblySystem_Design, "System.Drawing.Design.UITypeEditor, " + Consts.AssemblySystem_Drawing)]
+		[MessagingDescription ("MsgBodyStream")]
+		public Stream BodyStream {
+			get { 
+				if (bodyStream == null && body != null)
+					formatter.Write (this, body); 
+				return bodyStream;	
+			}
+			set { bodyStream = value; }
+		}
+
+		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+		[MessagingDescription ("MsgBodyType")]
+		[ReadOnly (true)]
+		public int BodyType {
+			[MonoTODO]
+			get {throw new NotImplementedException();}
+			[MonoTODO]
+			set {throw new NotImplementedException();}
+		}
+
+		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+		[ReadOnly (true)]
+		[MessagingDescription ("MsgConnectorType")]
+		public Guid ConnectorType {
+			get { return connectorType; }
+			set { connectorType = value; }
+		}
+
+		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+		[ReadOnly (true)]
+		[MessagingDescription ("MsgCorrelationId")]
+		public string CorrelationId {
+			get { return correlationId; }
+			set { correlationId = value; }
+		}
+
+		[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
+		[MessagingDescription("MsgDestinationQueue")]
+		public MessageQueue DestinationQueue {
+			get { throw new InvalidOperationException ("Message has not been sent"); }
+		}
+
+		[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
+		[ReadOnly(true)]
+		[MessagingDescription("MsgDestinationSymmetricKey")]
+		public byte[] DestinationSymmetricKey {
+			get { return destinationSymmetricKey; }
+			set { destinationSymmetricKey = value; }
+		}
+
+		[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
+		[ReadOnly(true)]
+		[MessagingDescription("MsgDigitalSignature")]
+		public byte[] DigitalSignature {
+			get { return digitalSignature; }
+			set { digitalSignature = value; }
+		}
+
+		[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
+		[ReadOnly(true)]
+		[MessagingDescription("MsgEncryptionAlgorithm")]
+		public EncryptionAlgorithm EncryptionAlgorithm {
+			get { return encryptionAlgorithm; }
+			set { encryptionAlgorithm = value; }
+		}
+
+		[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
+		[ReadOnly(true)]
+		[MessagingDescription("MsgExtension")]
+		public byte[] Extension {
+			get { return extension; }
+			set { 
+				if (value == null)
+					throw new ArgumentException("Extension may not be null");
+				extension = value;
+			}
+		}
+
+		[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
+		[Browsable(false)]
+		public IMessageFormatter Formatter {
+			get {
+				return formatter;
+			}
+			set {
+				formatter = value;
+			}
+		}
+
+		[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
+		[ReadOnly(true)]
+		[MessagingDescription("MsgHashAlgorithm")]
+		public HashAlgorithm HashAlgorithm {
+			get { return hashAlgorithm; }
+			set { hashAlgorithm = value; }
+		}
+
+		[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
+		[ReadOnly(true)]
+		[MessagingDescription("MsgId")]
+		public string Id {
+			get { throw new InvalidOperationException("Message has not been sent"); }
+		}
+
+		[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
+		[MessagingDescription("MsgIsFirstInTransaction")]
+		public bool IsFirstInTransaction {
+			get { throw new InvalidOperationException("Message has not been sent"); }
+		}
+
+		[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
+		[MessagingDescription("MsgIsLastInTransaction")]
+		public bool IsLastInTransaction {
+			get { throw new InvalidOperationException("Message has not been sent"); }
+		}
+
+		[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
+		[ReadOnly(true)]
+		[MessagingDescription("MsgLabel")]
+		public string Label {
+			get { return label; }
+			set { label = value; }
+		}
+
+		[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
+		[MessagingDescription("MsgMessageType")]
+		public MessageType MessageType {
+			get { throw new InvalidOperationException("Message has not been sent"); }
+		}
+
+		[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
+		[ReadOnly(true)]
+		[MessagingDescription("MsgPriority")]
+		public MessagePriority Priority {
+			get { return priority; }
+			set { priority = value; }
+		}
+
+		[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
+		[ReadOnly(true)]
+		[MessagingDescription("MsgRecoverable")]
+		public bool Recoverable {
+			get { return recoverable; }
+			set { recoverable = value; }
+		}
+
+		[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
+		[ReadOnly(true)]
+		[MessagingDescription("MsgResponseQueue")]
+		public MessageQueue ResponseQueue {
+			get { return responseQueue; }
+			set { responseQueue = value; }
+		}
+
+		[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
+		[ReadOnly(true)]
+		[MessagingDescription("MsgSenderCertificate")]
+		public byte[] SenderCertificate {
+			get { return senderCertificate; }
+			set { senderCertificate = value; }
+		}
+
+		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+		[MessagingDescription ("MsgSenderId")]
+		public byte[] SenderId {
+			get { throw new InvalidOperationException("Message has not been sent"); }
+		}
+
+		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+		[ReadOnly (true)]
+		[MessagingDescription ("MsgSenderVersion")]
+		public long SenderVersion {
+			get { throw new InvalidOperationException("Message has not been sent"); }
+		}
+
+		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+		[ReadOnly (true)]
+		[MessagingDescription ("MsgSentTime")]
+		public DateTime SentTime {
+			get { throw new InvalidOperationException("Message has not been sent"); }
+		}
+
+		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+		[MessagingDescription ("MsgSourceMachine")]
+		public string SourceMachine {
+			get { throw new InvalidOperationException("Message has not been sent"); }
+		}
+
+		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+		[ReadOnly (true)]
+		[MessagingDescription ("MsgTimeToBeReceived")]
+		[TypeConverter (typeof(TimeoutConverter))]
+		public TimeSpan TimeToBeReceived {
+			get { return timeToBeReceived; }
+			set { timeToBeReceived = value; }
+		}
+
+		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+		[ReadOnly (true)]
+		[MessagingDescription ("MsgTimeToReachQueue")]
+		[TypeConverter (typeof(TimeoutConverter))]
+		public TimeSpan TimeToReachQueue {
+			get { return timeToReachQueue; }
+			set { timeToReachQueue = value; }
+		}
+
+		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+		[MessagingDescription ("MsgTransactionId")]
+		public string TransactionId {
+			get { throw new InvalidOperationException ("Message has not been sent"); }
+		}
+
+		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+		[ReadOnly (true)]
+		[MessagingDescription ("MsgTransactionStatusQueue")]
+		public MessageQueue TransactionStatusQueue {
+			get { throw new InvalidOperationException ("Message has not been sent"); }
+			[MonoTODO]
+			set {throw new NotImplementedException();}
+		}
+
+		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+		[ReadOnly (true)]
+		[MessagingDescription ("MsgUseAuthentication")]
+		public bool UseAuthentication {
+			get { return useAuthentication; }
+			set { useAuthentication = value; }
+		}
+
+		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+		[ReadOnly (true)]
+		[MessagingDescription ("MsgUseDeadLetterQueue")]
+		public bool UseDeadLetterQueue {
+			get { return useDeadLetterQueue; }
+			set { useDeadLetterQueue = value; }
+		}
+
+		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+		[ReadOnly (true)]
+		[MessagingDescription ("MsgUseEncryption")]
+		public bool UseEncryption {
+			get { return useEncryption; }
+			set { useEncryption = value; }
+		}
+
+		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+		[ReadOnly (true)]
+		[MessagingDescription ("MsgUseJournalQueue")]
+		public bool UseJournalQueue {
+			get { return useJournalQueue; }
+			set { useJournalQueue = value; }
+		}
+
+		[DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden)]
+		[ReadOnly (true)]
+		[MessagingDescription ("MsgUseTracing")]
+		public bool UseTracing {
+			get { return useTracing; }
+			set { useTracing = value; }
+		}
+
+		#endregion //Properties
+	}
+}
Index: class/System.Messaging/System.Messaging_test.dll.sources
===================================================================
--- class/System.Messaging/System.Messaging_test.dll.sources	(revision 99741)
+++ class/System.Messaging/System.Messaging_test.dll.sources	(working copy)
@@ -1 +1 @@
-System.Messaging/MessageQueuePermissionAttributeTest.cs
+System.Messaging/MessageTest.cs
_______________________________________________
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list

Reply via email to