diff --git a/examples/Spring/Spring.RestQuickStart/Spring.RestQuickStart.2005.sln b/examples/Spring/Spring.RestQuickStart/Spring.RestQuickStart.2005.sln new file mode 100644 index 00000000..8b128253 --- /dev/null +++ b/examples/Spring/Spring.RestQuickStart/Spring.RestQuickStart.2005.sln @@ -0,0 +1,34 @@ +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spring.Http.2005", "..\..\..\src\Spring\Spring.Http\Spring.Http.2005.csproj", "{EE04EC0F-4B1F-1D13-B30F-00FAC04F79BC}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spring.Http.Tests.2005", "..\..\..\test\Spring\Spring.Http.Tests\Spring.Http.Tests.2005.csproj", "{9437475B-3897-A399-46BF-45F04CEE1821}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spring.RestQuickStart.2005", "src\Spring.RestQuickStart\Spring.RestQuickStart.2005.csproj", "{5B47D309-31C9-4282-86E2-11FC63DFF55B}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {EE04EC0F-4B1F-1D13-B30F-00FAC04F79BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EE04EC0F-4B1F-1D13-B30F-00FAC04F79BC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EE04EC0F-4B1F-1D13-B30F-00FAC04F79BC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EE04EC0F-4B1F-1D13-B30F-00FAC04F79BC}.Release|Any CPU.Build.0 = Release|Any CPU + {9437475B-3897-A399-46BF-45F04CEE1821}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9437475B-3897-A399-46BF-45F04CEE1821}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9437475B-3897-A399-46BF-45F04CEE1821}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9437475B-3897-A399-46BF-45F04CEE1821}.Release|Any CPU.Build.0 = Release|Any CPU + {5B47D309-31C9-4282-86E2-11FC63DFF55B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5B47D309-31C9-4282-86E2-11FC63DFF55B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5B47D309-31C9-4282-86E2-11FC63DFF55B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5B47D309-31C9-4282-86E2-11FC63DFF55B}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + NAntAddinLastFileName = Spring.build + EndGlobalSection +EndGlobal diff --git a/examples/Spring/Spring.RestQuickStart/src/Spring.RestQuickStart/Program.cs b/examples/Spring/Spring.RestQuickStart/src/Spring.RestQuickStart/Program.cs index fdf64974..be54d6ce 100644 --- a/examples/Spring/Spring.RestQuickStart/src/Spring.RestQuickStart/Program.cs +++ b/examples/Spring/Spring.RestQuickStart/src/Spring.RestQuickStart/Program.cs @@ -1,6 +1,8 @@ using System; +#if NET_3_5 using System.Linq; using System.Xml.Linq; +#endif using Spring.Http.Rest; @@ -14,9 +16,7 @@ namespace Spring.RestQuickStart { RestTemplate rt = new RestTemplate("http://twitter.com"); - //string result = rt.GetForObject("/statuses/user_timeline.xml?id={id}&count={2}", "SpringForNet", "10"); - //Console.WriteLine(result); - +#if NET_3_5 XElement result = rt.GetForObject("/statuses/user_timeline.xml?id={id}&count={2}", "SpringForNet", "10"); var tweets = from el in result.Elements("status") select el.Element("text").Value; @@ -25,6 +25,10 @@ namespace Spring.RestQuickStart Console.WriteLine(String.Format("* {0}", tweet)); Console.WriteLine(); } +#else + string result = rt.GetForObject("/statuses/user_timeline.xml?id={id}&count={2}", "SpringForNet", "10"); + Console.WriteLine(result); +#endif } catch (Exception ex) diff --git a/examples/Spring/Spring.RestQuickStart/src/Spring.RestQuickStart/Spring.RestQuickStart.2005.csproj b/examples/Spring/Spring.RestQuickStart/src/Spring.RestQuickStart/Spring.RestQuickStart.2005.csproj new file mode 100644 index 00000000..ee56f1b2 --- /dev/null +++ b/examples/Spring/Spring.RestQuickStart/src/Spring.RestQuickStart/Spring.RestQuickStart.2005.csproj @@ -0,0 +1,53 @@ + + + + Debug + AnyCPU + 8.0.50727 + 2.0 + {5B47D309-31C9-4282-86E2-11FC63DFF55B} + Exe + Properties + Spring.RestQuickStart + Spring.RestQuickStart + 512 + + + true + full + false + bin\Debug\ + TRACE;DEBUG;NET_2_0 + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE;NET_2_0 + prompt + 4 + + + + + + + + + + + {EE04EC0F-4B1F-1D13-B30F-00FAC04F79BC} + Spring.Http.2005 + + + + + \ No newline at end of file diff --git a/examples/Spring/Spring.RestQuickStart/src/Spring.RestQuickStart/Spring.RestQuickStart.2008.csproj b/examples/Spring/Spring.RestQuickStart/src/Spring.RestQuickStart/Spring.RestQuickStart.2008.csproj index 10809169..e6afbeab 100644 --- a/examples/Spring/Spring.RestQuickStart/src/Spring.RestQuickStart/Spring.RestQuickStart.2008.csproj +++ b/examples/Spring/Spring.RestQuickStart/src/Spring.RestQuickStart/Spring.RestQuickStart.2008.csproj @@ -18,7 +18,7 @@ full false bin\Debug\ - DEBUG;TRACE + TRACE;DEBUG;NET_2_0;NET_3_0;NET_3_5 prompt 4 @@ -26,7 +26,7 @@ pdbonly true bin\Release\ - TRACE + TRACE;NET_2_0;NET_3_0;NET_3_5 prompt 4 diff --git a/examples/Spring/Spring.RestQuickStart/src/Spring.RestQuickStart/Spring.RestQuickStart.2010.csproj b/examples/Spring/Spring.RestQuickStart/src/Spring.RestQuickStart/Spring.RestQuickStart.2010.csproj index 3693c86a..2bac912f 100644 --- a/examples/Spring/Spring.RestQuickStart/src/Spring.RestQuickStart/Spring.RestQuickStart.2010.csproj +++ b/examples/Spring/Spring.RestQuickStart/src/Spring.RestQuickStart/Spring.RestQuickStart.2010.csproj @@ -38,7 +38,7 @@ full false bin\Debug\ - DEBUG;TRACE + TRACE;DEBUG;NET_2_0;NET_3_0;NET_3_5;NET_4_0 prompt 4 @@ -46,7 +46,7 @@ pdbonly true bin\Release\ - TRACE + TRACE;NET_2_0;NET_3_0;NET_3_5;NET_4_0 prompt 4 diff --git a/src/Spring/Spring.Http/Http/Converters/AbstractHttpMessageConverter.cs b/src/Spring/Spring.Http/Http/Converters/AbstractHttpMessageConverter.cs index 991f415d..525485b7 100644 --- a/src/Spring/Spring.Http/Http/Converters/AbstractHttpMessageConverter.cs +++ b/src/Spring/Spring.Http/Http/Converters/AbstractHttpMessageConverter.cs @@ -270,17 +270,21 @@ namespace Spring.Http.Converters { } - public void CopyToAndClose(Stream dest) + public void CopyToAndClose(Stream destination) { this.Position = 0; +#if NET_4_0 + this.CopyTo(destination); +#else // From .NET 4.0 Stream.CopyTo method int bytesCount; byte[] buffer = new byte[0x1000]; while ((bytesCount = this.Read(buffer, 0, buffer.Length)) != 0) { - dest.Write(buffer, 0, bytesCount); + destination.Write(buffer, 0, bytesCount); } +#endif base.Close(); } diff --git a/src/Spring/Spring.Http/Http/Converters/Feed/AbstractFeedHttpMessageConverter.cs b/src/Spring/Spring.Http/Http/Converters/Feed/AbstractFeedHttpMessageConverter.cs index ace94f8d..fd95c74c 100644 --- a/src/Spring/Spring.Http/Http/Converters/Feed/AbstractFeedHttpMessageConverter.cs +++ b/src/Spring/Spring.Http/Http/Converters/Feed/AbstractFeedHttpMessageConverter.cs @@ -85,7 +85,11 @@ namespace Spring.Http.Converters.Feed XmlReaderSettings settings = new XmlReaderSettings(); settings.CloseInput = true; settings.IgnoreProcessingInstructions = true; +#if NET_4_0 + settings.DtdProcessing = DtdProcessing.Ignore; +#else settings.ProhibitDtd = false; +#endif settings.XmlResolver = null; return settings; } diff --git a/src/Spring/Spring.Http/Http/Rest/RestTemplate.cs b/src/Spring/Spring.Http/Http/Rest/RestTemplate.cs index 8065d3a8..8bc10980 100644 --- a/src/Spring/Spring.Http/Http/Rest/RestTemplate.cs +++ b/src/Spring/Spring.Http/Http/Rest/RestTemplate.cs @@ -24,7 +24,9 @@ using System.Collections.Generic; using Spring.Http.Converters; using Spring.Http.Converters.Xml; +#if NET_3_5 using Spring.Http.Converters.Feed; +#endif using Spring.Http.Rest.Support; using UriTemplate = Spring.Util.UriTemplate; // UriTemplate in .NET Framework since 3.5 using AssertUtils = Spring.Util.AssertUtils; @@ -199,15 +201,18 @@ namespace Spring.Http.Rest this._messageConverters.Add(new ByteArrayHttpMessageConverter()); this._messageConverters.Add(new StringHttpMessageConverter()); this._messageConverters.Add(new UrlEncodedFormHttpMessageConverter()); - //this._messageConverters.Add(new XmlSerializableHttpMessageConverter()); this._messageConverters.Add(new XmlDocumentHttpMessageConverter()); -#if NET_3_5 +#if NET_3_0 this._messageConverters.Add(new DataContractHttpMessageConverter()); +#else // NET_2_0 only + this._messageConverters.Add(new XmlSerializableHttpMessageConverter()); +#endif +#if NET_3_5 this._messageConverters.Add(new XElementHttpMessageConverter()); this._messageConverters.Add(new Rss20FeedHttpMessageConverter()); this._messageConverters.Add(new Atom10FeedHttpMessageConverter()); //this._messageConverters.Add(new JsonHttpMessageConverter()); -#endif +#endif } #endregion diff --git a/src/Spring/Spring.Http/Spring.Http.2005.csproj b/src/Spring/Spring.Http/Spring.Http.2005.csproj new file mode 100644 index 00000000..db48e245 --- /dev/null +++ b/src/Spring/Spring.Http/Spring.Http.2005.csproj @@ -0,0 +1,134 @@ + + + Local + 8.0.50727 + 2.0 + {EE04EC0F-4B1F-1D13-B30F-00FAC04F79BC} + Debug + AnyCPU + + + + + Spring.Http + + + JScript + Grid + IE50 + false + Library + Spring + OnBuildSuccess + + + false + + + ..\..\..\build\VS.Net.2005\Spring.Http\Debug\ + false + 285212672 + false + + + TRACE;DEBUG;NET_2_0 + Spring.Http.xml + true + 4096 + false + + + false + false + false + false + 4 + full + prompt + + + ..\..\..\build\VS.Net.2005\Spring.Http\Release\ + false + 285212672 + false + + + TRACE;NET_2_0 + + + false + 4096 + false + + + true + false + false + false + 4 + none + prompt + + + + False + ..\..\..\lib\Net\2.0\Common.Logging.dll + + + System + + + + + + + + CommonAssemblyInfo.cs + Code + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/Spring/Spring.Http/Spring.Http.2010.csproj b/src/Spring/Spring.Http/Spring.Http.2010.csproj index ea085ae6..3b957c6f 100644 --- a/src/Spring/Spring.Http/Spring.Http.2010.csproj +++ b/src/Spring/Spring.Http/Spring.Http.2010.csproj @@ -24,7 +24,7 @@ false - v3.5 + v4.0 3.5 @@ -53,7 +53,7 @@ false - TRACE;DEBUG;NET_2_0;NET_3_0;NET_3_5 + TRACE;DEBUG;NET_2_0;NET_3_0;NET_3_5;NET_4_0 Spring.Http.xml true 4096 @@ -75,7 +75,7 @@ false - TRACE;NET_2_0;NET_3_0;NET_3_5 + TRACE;NET_2_0;NET_3_0;NET_3_5;NET_4_0 false @@ -101,6 +101,7 @@ + diff --git a/test/Spring/Spring.Http.Tests/Http/Converters/Xml/XmlSerializableHttpMessageConverterTests.cs b/test/Spring/Spring.Http.Tests/Http/Converters/Xml/XmlSerializableHttpMessageConverterTests.cs index 8915b6d5..b2b63d41 100644 --- a/test/Spring/Spring.Http.Tests/Http/Converters/Xml/XmlSerializableHttpMessageConverterTests.cs +++ b/test/Spring/Spring.Http.Tests/Http/Converters/Xml/XmlSerializableHttpMessageConverterTests.cs @@ -1,5 +1,4 @@ -#if NET_3_0 -#region License +#region License /* * Copyright 2002-2010 the original author or authors. @@ -112,9 +111,20 @@ namespace Spring.Http.Converters.Xml public class CustomClass { - public string ID { get; set; } + private string _id; + private string _name; - public string Name { get; set; } + public string ID + { + get { return _id; } + set { _id = value; } + } + + public string Name + { + get { return _name; } + set { _name = value; } + } public CustomClass() { @@ -122,12 +132,11 @@ namespace Spring.Http.Converters.Xml public CustomClass(string id, string name) { - this.ID = id; - this.Name = name; + this._id = id; + this._name = name; } } #endregion } } -#endif diff --git a/test/Spring/Spring.Http.Tests/Spring.Http.Tests.2005.csproj b/test/Spring/Spring.Http.Tests/Spring.Http.Tests.2005.csproj new file mode 100644 index 00000000..2e1f02e1 --- /dev/null +++ b/test/Spring/Spring.Http.Tests/Spring.Http.Tests.2005.csproj @@ -0,0 +1,128 @@ + + + Local + 8.0.50727 + 2.0 + {9437475B-3897-A399-46BF-45F04CEE1821} + Debug + AnyCPU + + + + + Spring.Http.Tests + + + JScript + Grid + IE50 + false + Library + Spring + OnBuildSuccess + + + + + ..\..\..\build\VS.Net.2005\Spring.Http.Tests\Debug\ + false + 285212672 + false + + + TRACE;DEBUG;NET_2_0 + + + true + 4096 + false + + + false + false + false + true + 4 + full + prompt + true + + + ..\..\..\build\VS.Net.2005\Spring.Http.Tests\Release\ + false + 285212672 + false + + + TRACE;NET_2_0 + + + false + 4096 + false + + + true + false + false + false + 4 + none + prompt + + + + False + ..\..\..\lib\Net\2.0\Common.Logging.dll + + + nunit.framework + ..\..\..\lib\Net\2.0\nunit.framework.dll + + + False + ..\..\..\lib\Net\2.0\Rhino.Mocks.dll + + + System + + + + + + + + + + + + + + + + + + + + + + + + + + {EE04EC0F-4B1F-1D13-B30F-00FAC04F79BC} + Spring.Http.2005 + + + + + + + + + + echo "Copying .xml files for tests" +xcopy "$(ProjectDir)Data" ..\..\..\..\build\VS.Net.2005\Spring.Http.Tests\$(ConfigurationName)\ /y /s /q /d +xcopy "$(ProjectDir)$(TargetFileName).config" ..\..\..\..\build\VS.Net.2005\Spring.Http.Tests\$(ConfigurationName)\ /y /s /q + + \ No newline at end of file diff --git a/test/Spring/Spring.Http.Tests/Spring.Http.Tests.2010.csproj b/test/Spring/Spring.Http.Tests/Spring.Http.Tests.2010.csproj index 5f163891..67e8b4b0 100644 --- a/test/Spring/Spring.Http.Tests/Spring.Http.Tests.2010.csproj +++ b/test/Spring/Spring.Http.Tests/Spring.Http.Tests.2010.csproj @@ -76,7 +76,7 @@ false - TRACE;NET_2_0;NET_3_0;NET_3_5 + TRACE;NET_2_0;NET_3_0;NET_3_5;NET_4_0 false