Applied

On Fri, Jul 31, 2009 at 6:18 AM, thuannguy <[email protected]> wrote:

>
> Oops, Since I have been very busy on other projects for a month, plus
> the fact that gmail is not my daily email application, I haven't
> noticed your reply. I apologize for that. I just uploaded the patch
> which works for me.
>
> On Jun 22, 10:22 am, Ayende Rahien <[email protected]> wrote:
> > Can you attach the patch?I can't get it from gmail as it is now.
> >
> >
> >
> > On Mon, Jun 15, 2009 at 6:07 AM, thuannguy <[email protected]> wrote:
> >
> > > Recently I updated Rhino Service Bus code and suddenly my code
> > > failed  :-D  After investigating a bit, I found out it is broken
> > > because of this commit:
> >
> > >    Revision: 2168
> > >    Author: ayenderahien
> > >    Date: 1:26:43 AM, Tuesday, June 02, 2009
> > >    Message:
> > >    Patch from João P. Bragança - for Version Information Included
> > > with Generic Types
> > >    ----
> > >    Modified : /trunk/esb/Rhino.ServiceBus/Impl/DefaultReflection.cs
> > >    Modified : /trunk/esb/Rhino.ServiceBus.Tests/
> > > DefaultReflectionTests.cs
> >
> > > The case is simple: I have a SerializableDictionary which is defined
> > > in the "AAAAA.Common" assembly.
> >
> > > defaultReflection.GetAssemblyQualifiedNameWithoutVersion(typeof
> > > (SerializableDictionary<string,string>)) returns:
> >
> > > "System.Collections.SerializableDictionary`2[[string],[string]],
> > > AAAAA.Common"
> >
> > > but the correct one should be:
> >
> > > "System.Collections.SerializableDictionary`2[[System.String],
> > > [System.String]], AAAAA.Common"
> >
> > > You can use Type.GetType() to test: the former returns null while the
> > > latter returns the correct Type object.
> >
> > > Below is the quick fix I made which work for me. However, as I pointed
> > > out in
> >
> > >
> Gets_assembly_name_without_version_for_generic_types_with_more_than_one_typ­e_parameter_in_local_assemblies
> > > test case, this is not a complete fix.
> >
> > >
> //-------------------------------------------------------------------------­---------------------------------------------------------------------------­-------------//
> > > Index: D:/CatGlobe/SOURCES/CatTask-references/Rhino tools/esb/
> > > Rhino.ServiceBus/Convertors/ThrowingWireEcryptedStringConvertor.cs
> > > ===================================================================
> > > --- D:/CatGlobe/SOURCES/CatTask-references/Rhino tools/esb/
> > > Rhino.ServiceBus/Convertors/ThrowingWireEcryptedStringConvertor.cs
> > > (revision 2203)
> > > +++ D:/CatGlobe/SOURCES/CatTask-references/Rhino tools/esb/
> > > Rhino.ServiceBus/Convertors/ThrowingWireEcryptedStringConvertor.cs
> > > (working copy)
> > > @@ -17,7 +17,7 @@
> >
> > >        public WireEcryptedString FromElement(XElement element)
> > >        {
> > > -            var value = element.Element(XName.Get("Value",
> > > "string"));
> > > +            var value = element.Element(XName.Get("Value",
> > > "System.String"));
> > >            if(value==null)
> > >                throw new SerializationException("<WireEcryptedString>
> > > did not have mandatory <Value> element");
> > >            return new WireEcryptedString
> >
> > > Index: D:/CatGlobe/SOURCES/CatTask-references/Rhino tools/esb/
> > > Rhino.ServiceBus/Convertors/WireEcryptedStringConvertor.cs
> > > ===================================================================
> > > --- D:/CatGlobe/SOURCES/CatTask-references/Rhino tools/esb/
> > > Rhino.ServiceBus/Convertors/WireEcryptedStringConvertor.cs   (revision
> > > 2203)
> > > +++ D:/CatGlobe/SOURCES/CatTask-references/Rhino tools/esb/
> > > Rhino.ServiceBus/Convertors/WireEcryptedStringConvertor.cs   (working
> > > copy)
> > > @@ -24,7 +24,7 @@
> >
> > >        public WireEcryptedString FromElement(XElement element)
> > >        {
> > > -            var value = element.Element(XName.Get("Value","string"));
> > > +            var value = element.Element(XName.Get
> > > ("Value","System.String"));
> > >            if(value==null)
> > >                throw new ArgumentException("element must contain
> > > <value> element");
> >
> > > Index: D:/CatGlobe/SOURCES/CatTask-references/Rhino tools/esb/
> > > Rhino.ServiceBus/Impl/DefaultReflection.cs
> > > ===================================================================
> > > --- D:/CatGlobe/SOURCES/CatTask-references/Rhino tools/esb/
> > > Rhino.ServiceBus/Impl/DefaultReflection.cs   (revision 2203)
> > > +++ D:/CatGlobe/SOURCES/CatTask-references/Rhino tools/esb/
> > > Rhino.ServiceBus/Impl/DefaultReflection.cs   (working copy)
> > > @@ -29,20 +29,20 @@
> > >            wellKnownTypeNameToType = new Dictionary<string, Type>();
> > >            typeToWellKnownTypeName = new Dictionary<Type, string>
> > >            {
> > > -                {typeof (string), "string"},
> > > -                {typeof (int), "int"},
> > > -                {typeof (byte), "byte"},
> > > -                {typeof (bool), "bool"},
> > > -                {typeof (DateTime), "datetime"},
> > > -                {typeof (TimeSpan), "timespan"},
> > > -                {typeof (decimal), "decimal"},
> > > -                {typeof (float), "float"},
> > > -                {typeof (double), "double"},
> > > -                {typeof (char), "char"},
> > > -                {typeof (Guid), "guid"},
> > > -                {typeof (Uri), "uri"},
> > > -                {typeof (short), "short"},
> > > -                {typeof (long), "long"},
> > > +                {typeof (string), typeof (string).FullName},
> > > +                {typeof (int), typeof (int).FullName},
> > > +                {typeof (byte), typeof (byte).FullName},
> > > +                {typeof (bool), typeof (bool).FullName},
> > > +                {typeof (DateTime), typeof (DateTime).FullName},
> > > +                {typeof (TimeSpan), typeof (TimeSpan).FullName},
> > > +                {typeof (decimal), typeof (decimal).FullName},
> > > +                {typeof (float), typeof (float).FullName},
> > > +                {typeof (double), typeof (double).FullName},
> > > +                {typeof (char), typeof (char).FullName},
> > > +                {typeof (Guid), typeof (Guid).FullName},
> > > +                {typeof (Uri), typeof (Uri).FullName},
> > > +                {typeof (short), typeof (short).FullName},
> > > +                {typeof (long), typeof (long).FullName},
> > >                               {typeof(byte[]), "binary"}
> > >            };
> > >            foreach (var pair in typeToWellKnownTypeName)
> >
> > > Index: D:/CatGlobe/SOURCES/CatTask-references/Rhino tools/esb/
> > > Rhino.ServiceBus.Tests/DefaultReflectionTests.cs
> > > ===================================================================
> > > --- D:/CatGlobe/SOURCES/CatTask-references/Rhino tools/esb/
> > > Rhino.ServiceBus.Tests/DefaultReflectionTests.cs     (revision 2203)
> > > +++ D:/CatGlobe/SOURCES/CatTask-references/Rhino tools/esb/
> > > Rhino.ServiceBus.Tests/DefaultReflectionTests.cs     (working copy)
> > > @@ -78,6 +78,7 @@
> > >                       var output =
> > > reflection.GetAssemblyQualifiedNameWithoutVersion(typeof
> > > (GenericConsumer<SomeMsg>));
> >
> > >                       Assert.DoesNotContain
> > > ("Rhino.ServiceBus.Tests,Version=", output.Replace(" ", ""));
> > > +                  Assert.NotNull(Type.GetType(output));  // still
> > > fail!!!
> > >               }
> > >               [Fact]
> > >               public void
> > > Gets_assembly_name_with_more_than_one_type_parameter()
> > > @@ -86,7 +87,18 @@
> > >                       Assert.Equal(
> > >                               typeof(Dictionary<object,
> > > object>).AssemblyQualifiedName,
> > >                               name);
> > > +         var type = Type.GetType(name);
> > >               }
> > > +
> > > +      [Fact]
> > > +      public void
> >
> > >
> Gets_assembly_name_without_version_for_generic_types_with_more_than_one_typ­e_parameter_in_local_assemblies
> > > ()
> > > +      {
> > > +         string name =
> > > reflection.GetAssemblyQualifiedNameWithoutVersion(typeof
> > > (TestDictionary<string, string>));
> > > +         var type = Type.GetType(name);
> > > +         Assert.NotNull(type);   // fail if not apply my fix!!!
> > > +      }
> > > +
> > > +
> > >               public class SomeMsg{}
> > >               public class SomeMsgConsumer:GenericConsumer<SomeMsg>{}
> > >               public class GenericConsumer<T>:ConsumerOf<T>
> > > @@ -148,6 +160,10 @@
> > >            }
> > >        }
> > >    }
> > > +    public class TestDictionary<T, TK> : Dictionary<T, TK>
> > > +    {
> >
> > > +    }
> > > +
> >
> > >  }
> >
> > > Index: D:/CatGlobe/SOURCES/CatTask-references/Rhino tools/esb/
> > > Rhino.ServiceBus.Tests/When_Security_Is_Specified_In_Config.cs
> > > ===================================================================
> > > --- D:/CatGlobe/SOURCES/CatTask-references/Rhino tools/esb/
> > > Rhino.ServiceBus.Tests/When_Security_Is_Specified_In_Config.cs
> > > (revision 2203)
> > > +++ D:/CatGlobe/SOURCES/CatTask-references/Rhino tools/esb/
> > > Rhino.ServiceBus.Tests/When_Security_Is_Specified_In_Config.cs
> > > (working copy)
> > > @@ -54,7 +54,7 @@
> >
> > >        public const string encryptedMessage =
> > >                @"<?xml version=""1.0"" encoding=""utf-8""?>
> > > -<esb:messages xmlns:esb=""http://servicebus.hibernatingrhinos.com/
> > > 2008/12/20/esb""
> >
> > >
> xmlns:tests.classwithsecretfield=""Rhino.ServiceBus.Tests.When_Security_Is_­Specified_In_Config
> > > +ClassWithSecretField, Rhino.ServiceBus.Tests""
> >
> > >
> xmlns:datastructures.wireecryptedstring=""Rhino.ServiceBus.DataStructures.W­ireEcryptedString,
> > > Rhino.ServiceBus"" xmlns:string=""string"">
> > > +<esb:messages xmlns:esb=""http://servicebus.hibernatingrhinos.com/
> > > 2008/12/20/esb""
> >
> > >
> xmlns:tests.classwithsecretfield=""Rhino.ServiceBus.Tests.When_Security_Is_­Specified_In_Config
> > > +ClassWithSecretField, Rhino.ServiceBus.Tests""
> >
> > >
> xmlns:datastructures.wireecryptedstring=""Rhino.ServiceBus.DataStructures.W­ireEcryptedString,
> > > Rhino.ServiceBus"" xmlns:string=""System.String"">
> > >  <tests.classwithsecretfield:ClassWithSecretField>
> > >    <datastructures.wireecryptedstring:ShouldBeEncrypted>
> > >      <string:Value
> > > iv=""0yL9+t0uyDy9NeP7CU1Wow=="">q9a10IFuRxrzFoZewfdOyg==</
> > > string:Value>
> > > @@ -84,7 +84,7 @@
> > >                .Element(XName.Get("messages", "http://
> > > servicebus.hibernatingrhinos.com/2008/12/20/esb"))
> > >                .Element(XName.Get
> >
> > >
> ("ClassWithSecretField","Rhino.ServiceBus.Tests.When_Security_Is_Specified_­In_Config
> > > +ClassWithSecretField, Rhino.ServiceBus.Tests"))
> > >                .Element(XName.Get
> > >
> ("ShouldBeEncrypted","Rhino.ServiceBus.DataStructures.WireEcryptedString,
> > > Rhino.ServiceBus"))
> > > -                .Element(XName.Get("Value","string"))
> > > +                .Element(XName.Get("Value","System.String"))
> >
> > ...
> >
> > read more »- Hide quoted text -
> >
> > - Show quoted text -
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Rhino Tools Dev" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/rhino-tools-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to