Skip to content

Commit 892dc7e

Browse files
committed
Merge bug21220 into default (again)
2 parents 48eab7c + 4205dde commit 892dc7e

27 files changed

+114
-399
lines changed

Local.props.example

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<Project ToolsVersion="3.5" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
33
<PropertyGroup>
44
<PropTargetFramework>v3.5</PropTargetFramework>
5-
<PropAssemblyVersion>1.6.0</PropAssemblyVersion>
5+
<PropAssemblyVersion>0.0.0</PropAssemblyVersion>
66
<PropUsingMono>false</PropUsingMono>
77

88
<!-- Assembly strong naming - $(MSBuildProjectDirectory) is the RabbitMQ.Client project directory -->

dist.sh

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ CYGWIN=nontsec
7070
test "$KEYFILE" || KEYFILE=rabbit-mock.snk
7171
test "$RABBIT_VSN" || RABBIT_VSN=0.0.0
7272
test "$MSBUILD" || MSBUILD=msbuild.exe
73-
test "$RABBIT_WEBSITE" || RABBIT_WEBSITE=http://www.rabbitmq.com
73+
test "$WEB_URL" || WEB_URL=http://stage.rabbitmq.com
7474
test "$UNOFFICIAL_RELEASE" || UNOFFICIAL_RELEASE=
7575

7676
### Other, general vars
@@ -168,10 +168,13 @@ function src-dist {
168168
cp -r lib/nunit tmp/srcdist/lib/
169169
cp Local.props.example tmp/srcdist/
170170
cp README.in tmp/srcdist/README
171-
links -dump $RABBIT_WEBSITE/build-dotnet-client.html >> tmp/srcdist/README
171+
links -dump ${WEB_URL}build-dotnet-client.html >> tmp/srcdist/README
172172
cp-license-to tmp/srcdist/
173173

174-
### Zip tmp/srcdist
174+
### Zip tmp/srcdist making $NAME_VSN the root dir in the archive
175+
mv tmp/srcdist tmp/$NAME_VSN
176+
mkdir tmp/srcdist
177+
mv tmp/$NAME_VSN tmp/srcdist/
175178
cd tmp/srcdist
176179
zip -r ../../$RELEASE_DIR/$NAME_VSN.zip . -x \*.snk \*.resharper \*.csproj.user
177180
cd ../..
@@ -212,15 +215,9 @@ function dist-target-framework {
212215

213216
### Copy bin files to be zipped to tmp/dist/
214217
cp projects/client/RabbitMQ.Client/build/bin/RabbitMQ.Client.dll tmp/dist/bin/
215-
cp projects/examples/client/AddClient/build/bin/AddClient.exe tmp/dist/bin/
216-
cp projects/examples/client/AddServer/build/bin/AddServer.exe tmp/dist/bin/
217-
cp projects/examples/client/DeclareQueue/build/bin/DeclareQueue.exe tmp/dist/bin/
218-
cp projects/examples/client/ExceptionTest/build/bin/ExceptionTest.exe tmp/dist/bin/
219-
cp projects/examples/client/LogTail/build/bin/LogTail.exe tmp/dist/bin/
220-
cp projects/examples/client/LowlevelLogTail/build/bin/LowlevelLogTail.exe tmp/dist/bin/
221-
cp projects/examples/client/SendMap/build/bin/SendMap.exe tmp/dist/bin/
222-
cp projects/examples/client/SendString/build/bin/SendString.exe tmp/dist/bin/
223-
cp projects/examples/client/SingleGet/build/bin/SingleGet.exe tmp/dist/bin/
218+
for example in $(ls projects/examples/client); do
219+
cp projects/examples/client/$example/build/bin/$example.exe tmp/dist/bin/
220+
done
224221
test "$BUILD_WCF" && cp projects/wcf/RabbitMQ.ServiceModel/build/bin/RabbitMQ.ServiceModel.dll tmp/dist/bin/
225222
cp-license-to tmp/dist/
226223

docs/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ MANDIR=$(BUILDDIR)/doc/userguide
44
TMPDIR=$(BUILDDIR)/doc/tmp
55
BASEURL=http://localhost:8080
66

7-
PAGES=UserGuide ApiOverview MessagingPatterns ShutdownProtocols TroubleShooting Examples BuildingTheClient BuildingTheWcfBinding ImplementationGuide ApiGen
7+
PAGES=UserGuide ApiOverview MessagingPatterns ShutdownProtocols TroubleShooting Examples BuildingTheClient ImplementationGuide ApiGen
88

99
TARGET=$(MANDIR)/user-guide.pdf
1010

docs/wikipages/data.BuildingTheClient.txt

Lines changed: 47 additions & 105 deletions
Original file line numberDiff line numberDiff line change
@@ -2,146 +2,88 @@
22

33
The source tree is laid out as follows:
44

5-
- configs - contains NAnt property definition XML files, for individual build and deployment configurations, selectable via inclusion from [code default.build] and [code local.build]
6-
- dotnet-1.1.build - configuration for Microsoft .NET v1.1
7-
- dotnet-2.0.build - configuration for Microsoft .NET v2.0
8-
- default.build - the main NAnt build script
9-
- docs - contains both external documentation and the project's own documentation
10-
- namespaces.xml - Per-namespace documentation, for feeding into NDocProc
11-
- specs - AMQP specification documents and XML files
12-
- amqp-xml-doc0-9.pdf
13-
- amqp0-9.pdf
14-
- amqp0-9.xml
15-
- qpid-amqp.0-8.xml
16-
- amqp0-8.xml
17-
- wikipages - RabbitMQ .NET client library documentation in Pyle Wiki markup format
18-
- local.build.example - Sample [code local.build] file; used to select a configuration from the [code configs] directory
19-
- src - Source code to the various parts of the system
20-
- apigen - Source code for the XML specification parser and code generator
21-
- client
22-
- api - C# client public API interfaces and classes
23-
- content - C# QPid-compatible JMS message body codecs
24-
- events - C# event handler delegates and event classes
25-
- exceptions - C# API-visible exception definitions
26-
- impl - C# client internal/private implementation classes
27-
- v0_8 - AMQP 0-8 specific code
28-
- v0_8qpid - AMQP 0-8 code specific to QPid's M1 implementation
29-
- v0_9 - AMQP 0-9 specific code
30-
- messagepatterns - Implementation of common patterns in using AMQP; see the chapter on MessagePatterns
31-
- examples - simple AMQP client example programs in C#
32-
- unit - NUnit unit-tests
33-
- nunit - a copy of NUnit compiled for .NET 1.1, unpacked for convenience
34-
- util - Utility classes, compiled in to the client assembly
35-
- wcf - WCF binding source code, project files, and build products
36-
- RabbitMQ.ServiceModel.sln - Visual Studio solution file
37-
- RabbitMQ.ServiceModel - WCF binding library
38-
- RabbitMQ.ServiceModel.csproj - Visual Studio/MSBuild project file
39-
- RabbitMQ/ServiceModel/*.cs - code for the WCF binding
40-
- Test - WCF example programs
41-
- RabbitMQ.ServiceModel.Test.csproj - Visual Studio/MSBuild project file
42-
43-
- tools - Third-party tools, such as NAnt, NUnit, NDocProc, and Pyle Wiki, as well as utility scripts
5+
- [code docs] - Contains the AMQP specification XML files, used to generate code in [code projects/client/Apigen] project
6+
- [code lib] - Third-party libraries and programs referenced by the code or used during the build
7+
- [code projects] - Source code to the various parts of the system
8+
- [code client] - Source code and project files for building the client
9+
- [code Apigen] - Project for the XML specification parser and code generator application
10+
- [code ApigenBootstrap] - Project for creating a library out of some parts of RabbitMQ.Client's source code that are used in Apigen
11+
- [code RabbitMQ.Client] - The client library project
12+
- [code Unit] - Unit tests for the client library
13+
- [code wcf] - WCF binding source code and project files
14+
- [code RabbitMQ.ServiceModel] - The WCF binding project
15+
- [code examples] - Example projects
16+
- [code client] - Example code and projects for using the client library
17+
- [code wcf] - Example code and projects for using the WCF binding
18+
- [code Local.props] - Local customizations for the build process. Copy the contents of [code Local.props.example] in this file, to start with
19+
- [code RabbitMQDotNetClient.sln] - The Visual Studio solution file which contains all the projects
4420

4521
** Build Prerequisites
4622

4723
To compile the RabbitMQ .NET client library, you will need
4824

49-
- a .NET development environment. Environments tested include
50-
- Microsoft .NET 1.1 on Windows XP
51-
- Microsoft .NET 2.0 on Windows XP
52-
53-
- NAnt v0.85 or compatible (http://nant.sourceforge.net/); see the [code tools] directory
54-
55-
To build the Javadoc-style documentation, you will need
56-
57-
- NDocProc; see the [code tools] directory
25+
- a .NET development environment:
26+
- Microsoft .NET 2.0 (or later)
27+
- Microsoft .NET 3.0 (or later) if you want to build the WCF binding too
28+
- Microsoft Visual Studio 2005 or later (optional)
5829

5930
To run the unit tests, you will need
6031

61-
- NUnit 2.4.3; see the [code tools] directory
62-
63-
See BuildingTheWcfBinding for more information about the WCF binding.
32+
- NUnit 2.4.3; included in the [code lib] directory
6433

6534
** Configuring Your Tree
6635

67-
Copy [code local.build.example] to [code local.build], and edit it so that it points to one of the build configuration files in the [code configs/] directory.
68-
69-
For instance, a [code local.build] that contains the text
36+
Copy [code Local.props.example] to [code Local.props], and edit it if necessary (the properties in this file have suggestive names). Set [code PropTargetFramework] to [code v1.1], [code v2.0], [code v3.0] or [code v3.5]. If you would like to build under Mono, only [code v1.1] and [code v2.0] are supported; also set [code PropUsingMono] to [code true] in this case.
7037

71-
@code
72-
<project>
73-
<property name="config.name" value="dotnet-1.1" />
74-
</project>
38+
** Building
7539

76-
will use the [code configs/dotnet-1.1.build] file to control the build configuration.
40+
*** On Windows, with Visual Studio
7741

78-
** Available Build Targets
42+
Simply open [code RabbitMQDotNetClient.sln] with Visual Studio and build.
7943

80-
To run a particular build target, run
44+
If you are using a version of Visual Studio later than Visual Studio 2005, you will have to convert the solution to make it compatible with your version of Visual Studio. This process is automated and you are presented with a wizard when you first open the solution file.
8145

82-
@code sh
83-
NAnt.exe [targetname]
46+
The projects in the RabbitMQ .NET client contain some customizations in order to allow generating source files and running NUnit tests as part of the build process. You might be presented with warnings claiming that the projects might be unsafe. You will have to instruct Visual Studio to open all projects normally.
8447

85-
*** clean
48+
To skip running the NUnit tests as part of the build, select the [code DebugNoTest] build configuration.
8649

87-
Removes the [code build/] directory, which contains all binaries, generated sources and generated documentation.
50+
Note: If you change a property in [code Local.props] while the solution is loaded in Visual Studio, you will have to close the solution and reopen it, for the changes to take effect.
8851

89-
*** build (default)
52+
*** On Windows, without Visual Studio
9053

91-
Builds the main client DLL. Runs ApiGen as part of the process, if necessary.
54+
To build the client library without Visual Studio, first you need to make sure you have the .NET's framework directory in your [code PATH] environment variable. The .NET framework directory can usually be found at [code %WINDIR%\Microsoft.NET\Framework\v2.0.50727] for .NET 2.0 or [code %WINDIR%\Microsoft.NET\Framework\v3.0] for .NET 3.0.
9255

93-
*** doc
56+
Open the Command Prompt (Start -> Run -> cmd) or Cygwin (if you have it installed) and change to the client's directory. Now type [code msbuild.exe] and hit return to start building the solution.
9457

95-
Generates the Javadoc-like HTML code documentation, using NDocProc. The included binary version of NDocProc is compiled for .NET 1.1.
58+
Refer to MSBuild's documentation for information on valid command line switches for [code msbuild.exe].
9659

97-
*** examples
60+
*** On Linux, using Mono
9861

99-
Generates the example AMQP clients included in the [code src/examples/] directory, like [code SendString.exe] and [code LogTail.exe].
62+
For building under Mono, please refer to [link http://www.rabbitmq.com/build-dotnet-client.html#building-on-linux].
10063

101-
*** unit
64+
** Building the WCF binding
10265

103-
Runs the included unit tests. (.NET 1.1 and compatible only.)
66+
Building the WCF binding is enabled by default in [code Local.props] if the target framework is [code v3.0] or later (only on Windows).
10467

105-
*** stamp
68+
To disable building the WCF binding, set [code PropBuildWcf] to [code false].
10669

107-
Removes the preprocessed generated [code AssemblyInfo.cs], so that on a subsequent build, a fresh one will be generated from [code AssemblyInfo.cs.in] with a fresh build identifier.
70+
Building the WCF binding under Mono is currently unsupported due to limitations of Mono.
10871

10972
** Build Products
11073

111-
The build products available after a successful [code nant examples] are:
74+
The build products available after a successful build are:
11275

113-
- [code build/bin/RabbitMQ.Client.dll] - The final client assembly
114-
- Example client programs, like [code build/bin/SendString.exe] and [code build/bin/LogTail.exe]
76+
- [code projects/client/RabbitMQ.Client/build/bin/RabbitMQ.Client.dll] - The final client assembly
77+
- Example client programs, like [code projects/examples/client/SendString/build/bin/SendString.exe] and [code projects/examples/client/LogTail/build/bin/LogTail.exe]
11578

116-
Other files in the [code build/bin/] directory:
79+
If building the WCF binding is enabled, there will also be:
11780

118-
- [code apigen-bootstrap.dll] - fed into ApiGen
119-
- [code rabbitmq-dotnet-apigen.exe] - the ApiGen tool itself
120-
- [code unit-tests.dll] - contains NUnit unit-tests
81+
- [code projects/wcf/RabbitMQ.ServiceModel/build/bin/RabbitMQ.ServiceModel.dll] - The WCF binding library
82+
- Example programs for the WCF binding, like [code projects/examples/wcf/Test/build/bin/RabbitMQ.ServiceModel.Test.exe]
12183

12284
Other build products:
12385

124-
- [code build/gensrc/*.cs] - Protocol-specific autogenerated code, produced by ApiGen
125-
- [code build/doc/RabbitMQ.Client.xml] - [code csc]-generated XML documentation excerpt file, used as input to NDocProc
126-
- [code build/doc/xml/] - XML documentation files as generated by NDocProc
127-
- [code build/doc/html/] - HTML documentation as generated by NDocProc's stylesheets from the XML files
128-
129-
** Assembly Versioning
130-
131-
As part of the build process, the source file [code AssemblyInfo.cs.in] is copied to
132-
[code AssemblyInfo.cs], and the token [code @VERSION@] is replaced with value specified by
133-
the property [code version.major.minor.release] in the [code local.build] NAnt script.
134-
135-
The assembly version number is of the form
136-
137-
@code java
138-
"1.2.0"
139-
140-
or more generally
141-
142-
@code java
143-
"Major.Minor.Release"
144-
145-
that represents major, minor and release client version numbers, respectively.
86+
- [code gensrc/RabbitMQ.Client/autogenerated-api-*.cs] - Protocol-specific autogenerated code, produced by Apigen
87+
- [code projects/client/RabbitMQ.Client/build/bin/RabbitMQ.Client.xml] - [code csc]-generated XML documentation of the client assembly
88+
- [code projects/wcf/RabbitMQ.ServiceModel/build/bin/RabbitMQ.ServiceModel.xml] - [code csc]-generated XML documentation of the WCF binding
14689

147-
To force an update to the version number, the [code nant stamp] target deletes [code AssemblyInfo.cs], forcing its regeneration in subsequent builds.

docs/wikipages/data.BuildingTheWcfBinding.txt

Lines changed: 0 additions & 42 deletions
This file was deleted.

docs/wikipages/data.FrontPage.txt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,10 @@ Chapters in the user manual:
77
- TroubleShooting
88
- Examples
99
- BuildingTheClient
10-
- BuildingTheWcfBinding
1110
- ImplementationGuide
1211
- ApiGen
1312

1413
Non-manual or out-of-date pages:
1514

1615
- SessionApi
17-
- ShutdownProtocolDesignNotes
16+
- ShutdownProtocolDesignNotes

projects/README

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,6 @@ i.e.:
2424

2525
- Copy-paste the "mono workarounds" bit
2626

27-
- Add empty targets for BeforeBuild, BeforeClean and AfterBuild if not using
28-
them yourself (this is required for compatibility with mono - target override
29-
is not yet implemented properly)
30-
3127
- It's probably best to add new files by hand in the project (by copying the
3228
file to the appropriate location and editing the .csproj by hand)
3329

projects/client/Apigen/RabbitMQ.Client.Apigen.csproj

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<?xml version="1.0" encoding="utf-8"?>
1+
<?xml version="1.0" encoding="utf-8"?>
22
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
33
<!-- Warning! This file contains important customizations. Using Visual Studio to edit project's properties might break things. -->
44
<!-- Props file -->
@@ -57,11 +57,7 @@
5757
</ItemGroup>
5858
<ItemGroup>
5959
<Compile Include="properties\AssemblyInfo.cs" />
60-
<Compile Include="src\apigen\AmqpClass.cs" />
61-
<Compile Include="src\apigen\AmqpEntity.cs" />
62-
<Compile Include="src\apigen\AmqpField.cs" />
63-
<Compile Include="src\apigen\AmqpMethod.cs" />
64-
<Compile Include="src\apigen\Apigen.cs" />
60+
<Compile Include="src\apigen\**\*.cs" />
6561
</ItemGroup>
6662
<ItemGroup>
6763
<ProjectReference Include="..\ApigenBootstrap\RabbitMQ.Client.ApigenBootstrap.csproj">

projects/client/ApigenBootstrap/RabbitMQ.Client.ApigenBootstrap.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<?xml version="1.0" encoding="utf-8"?>
1+
<?xml version="1.0" encoding="utf-8"?>
22
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
33
<!-- Warning! This file contains important customizations. Using Visual Studio to edit project's properties might break things. -->
44

0 commit comments

Comments
 (0)