From 5b5e8fc7d7ed98f91e57db5c408d91796302da45 Mon Sep 17 00:00:00 2001
From: Kenneth Anthony Giusti
Date: Sat, 19 Feb 2011 13:51:04 +0000
Subject: QPID-2935: merge latest trunk
git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/qpid-2935@1072330 13f79535-47bb-0310-9956-ffa450edef68
---
qpid/cpp/CMakeLists.txt | 1 +
qpid/cpp/bindings/qpid/CMakeLists.txt | 39 ++++++
qpid/cpp/bindings/qpid/dotnet/Makefile.am | 1 +
.../org.apache.qpid.messaging.sessionreceiver.sln | 76 +++++++++++
qpid/cpp/bindings/qpid/examples/perl/client.pl | 8 +-
qpid/cpp/bindings/qpid/examples/perl/drain.pl | 12 +-
.../cpp/bindings/qpid/examples/perl/hello_world.pl | 10 +-
qpid/cpp/bindings/qpid/examples/perl/hello_xml.pl | 6 +-
.../bindings/qpid/examples/perl/map_receiver.pl | 8 +-
qpid/cpp/bindings/qpid/examples/perl/map_sender.pl | 8 +-
qpid/cpp/bindings/qpid/examples/perl/server.pl | 6 +-
qpid/cpp/bindings/qpid/examples/perl/spout.pl | 10 +-
qpid/cpp/bindings/qpid/perl/CMakeLists.txt | 39 ++++++
qpid/cpp/bindings/qpid/perl/Makefile.am | 20 +--
qpid/cpp/bindings/qpid/perl/perl.i | 2 +-
qpid/cpp/bindings/qpid/python/CMakeLists.txt | 46 +++++++
qpid/cpp/bindings/qpid/qpid.i | 2 +
qpid/cpp/bindings/qpid/ruby/CMakeLists.txt | 39 ++++++
qpid/cpp/src/CMakeLists.txt | 101 ++++++++++++--
qpid/cpp/src/Makefile.am | 5 +-
qpid/cpp/src/qpid/management/ManagementAgent.cpp | 20 +++
qpid/cpp/src/qpid/management/ManagementAgent.h | 7 +-
qpid/cpp/src/tests/MessagingFixture.h | 117 ++++++++++++++++
qpid/cpp/src/tests/MessagingSessionTests.cpp | 47 +++++++
qpid/cpp/src/tests/QueueTest.cpp | 2 +-
qpid/cpp/src/tests/qpid-ctrl | 5 +-
qpid/cpp/src/tests/sender.cpp | 2 +-
qpid/doc/dev-readme/QPID-0.8-Component-README.odg | Bin 13700 -> 0 bytes
qpid/doc/dev-readme/QPID-0.8-Component-README.pdf | Bin 40319 -> 0 bytes
qpid/doc/dev-readme/QPID-Component-README.odg | Bin 0 -> 14069 bytes
qpid/doc/dev-readme/QPID-Component-README.pdf | Bin 0 -> 39535 bytes
.../main/java/org/apache/qpid/qmf/QMFService.java | 19 +++
.../qpid/server/logging/actors/CurrentActor.java | 20 +--
.../qpid/server/util/InternalBrokerBaseCase.java | 5 +-
.../qpid/client/AMQConnectionDelegate_0_10.java | 14 +-
.../org/apache/qpid/client/AMQSession_0_10.java | 9 +-
.../client/message/AMQMessageDelegate_0_10.java | 25 ++--
.../java/org/apache/qpid/transport/Binary.java | 9 ++
.../org/apache/qpid/transport/ServerDelegate.java | 7 +-
.../qpid/transport/codec/AbstractDecoder.java | 10 +-
.../org/apache/qpid/transport/codec/BBDecoder.java | 5 +
.../apache/qpid/transport/network/Assembler.java | 65 ++++++---
.../qpid/transport/network/Disassembler.java | 57 +++-----
.../server/queue/QueueDepthWithSelectorTest.java | 141 +++++--------------
.../qpid/test/client/QueueBrowserAutoAckTest.java | 16 +--
.../apache/qpid/test/unit/message/UTF8Test.java | 35 ++---
qpid/packaging/windows/INSTALL_NOTES.html | 73 +++-------
qpid/packaging/windows/installer.proj | 51 ++++++-
qpid/packaging/windows/qpidc.wxs | 149 +++++++++++++++++++--
qpid/specs/management-schema.xml | 13 ++
50 files changed, 978 insertions(+), 384 deletions(-)
create mode 100644 qpid/cpp/bindings/qpid/CMakeLists.txt
create mode 100644 qpid/cpp/bindings/qpid/dotnet/org.apache.qpid.messaging.sessionreceiver.sln
create mode 100644 qpid/cpp/bindings/qpid/perl/CMakeLists.txt
create mode 100644 qpid/cpp/bindings/qpid/python/CMakeLists.txt
create mode 100644 qpid/cpp/bindings/qpid/ruby/CMakeLists.txt
delete mode 100644 qpid/doc/dev-readme/QPID-0.8-Component-README.odg
delete mode 100644 qpid/doc/dev-readme/QPID-0.8-Component-README.pdf
create mode 100644 qpid/doc/dev-readme/QPID-Component-README.odg
create mode 100644 qpid/doc/dev-readme/QPID-Component-README.pdf
diff --git a/qpid/cpp/CMakeLists.txt b/qpid/cpp/CMakeLists.txt
index 5c37ecfc97..17411e90a4 100644
--- a/qpid/cpp/CMakeLists.txt
+++ b/qpid/cpp/CMakeLists.txt
@@ -80,6 +80,7 @@ set(CPACK_PACKAGE_INSTALL_DIRECTORY "qpidc-${qpidc_version}")
add_subdirectory(managementgen)
add_subdirectory(etc)
add_subdirectory(src)
+add_subdirectory(bindings/qpid)
add_subdirectory(docs/api)
# add_subdirectory(docs/man)
add_subdirectory(examples)
diff --git a/qpid/cpp/bindings/qpid/CMakeLists.txt b/qpid/cpp/bindings/qpid/CMakeLists.txt
new file mode 100644
index 0000000000..b44065d32f
--- /dev/null
+++ b/qpid/cpp/bindings/qpid/CMakeLists.txt
@@ -0,0 +1,39 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+
+include(FindSWIG)
+include(UseSWIG)
+include(FindRuby)
+include(FindPythonLibs)
+include(FindPerlLibs)
+
+if (SWIG_FOUND)
+ if (PYTHONLIBS_FOUND)
+ add_subdirectory(python)
+ endif (PYTHONLIBS_FOUND)
+
+ if (RUBY_FOUND)
+ add_subdirectory(ruby)
+ endif (RUBY_FOUND)
+
+ if (PERLLIBS_FOUND)
+ add_subdirectory(perl)
+ endif (PERLLIBS_FOUND)
+endif (SWIG_FOUND)
diff --git a/qpid/cpp/bindings/qpid/dotnet/Makefile.am b/qpid/cpp/bindings/qpid/dotnet/Makefile.am
index f2b106bcb2..b5c1f6dda5 100644
--- a/qpid/cpp/bindings/qpid/dotnet/Makefile.am
+++ b/qpid/cpp/bindings/qpid/dotnet/Makefile.am
@@ -81,6 +81,7 @@ EXTRA_DIST = winsdk_sources/winsdk_dotnet_examples.sln \
configure-windows.ps1 \
ReadMe.txt \
org.apache.qpid.messaging.sln \
+ org.apache.qpid.messaging.sessionreceiver.sln \
test/messaging.test/messaging.test.address.cs \
test/messaging.test/messaging.test.duration.cs \
test/messaging.test/messaging.test.cs \
diff --git a/qpid/cpp/bindings/qpid/dotnet/org.apache.qpid.messaging.sessionreceiver.sln b/qpid/cpp/bindings/qpid/dotnet/org.apache.qpid.messaging.sessionreceiver.sln
new file mode 100644
index 0000000000..90e98a4bbe
--- /dev/null
+++ b/qpid/cpp/bindings/qpid/dotnet/org.apache.qpid.messaging.sessionreceiver.sln
@@ -0,0 +1,76 @@
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual Studio 2008
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License
+#
+
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Org.Apache.Qpid.Messaging", "src\org.apache.qpid.messaging.vcproj", "{AA5A3B83-5F98-406D-A01C-5A921467A57D}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "org.apache.qpid.messaging.sessionreceiver", "src\sessionreceiver\org.apache.qpid.messaging.sessionreceiver.csproj", "{B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|Win32 = Release|Win32
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ RelWithDebInfo|Win32 = RelWithDebInfo|Win32
+ RelWithDebInfo|x64 = RelWithDebInfo|x64
+ RelWithDebInfo|x86 = RelWithDebInfo|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Debug|Win32.ActiveCfg = Debug|Win32
+ {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Debug|Win32.Build.0 = Debug|Win32
+ {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Debug|x64.ActiveCfg = Debug|x64
+ {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Debug|x64.Build.0 = Debug|x64
+ {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Debug|x86.ActiveCfg = Debug|Win32
+ {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Debug|x86.Build.0 = Debug|Win32
+ {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Release|Win32.ActiveCfg = Release|Win32
+ {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Release|Win32.Build.0 = Release|Win32
+ {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Release|x64.ActiveCfg = Release|x64
+ {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Release|x64.Build.0 = Release|x64
+ {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Release|x86.ActiveCfg = Release|Win32
+ {AA5A3B83-5F98-406D-A01C-5A921467A57D}.Release|x86.Build.0 = Release|Win32
+ {AA5A3B83-5F98-406D-A01C-5A921467A57D}.RelWithDebInfo|Win32.ActiveCfg = RelWithDebInfo|Win32
+ {AA5A3B83-5F98-406D-A01C-5A921467A57D}.RelWithDebInfo|Win32.Build.0 = RelWithDebInfo|Win32
+ {AA5A3B83-5F98-406D-A01C-5A921467A57D}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
+ {AA5A3B83-5F98-406D-A01C-5A921467A57D}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
+ {AA5A3B83-5F98-406D-A01C-5A921467A57D}.RelWithDebInfo|x86.ActiveCfg = RelWithDebInfo|Win32
+ {AA5A3B83-5F98-406D-A01C-5A921467A57D}.RelWithDebInfo|x86.Build.0 = RelWithDebInfo|Win32
+ {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Debug|Win32.ActiveCfg = Debug|x64
+ {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Debug|x64.ActiveCfg = Debug|x64
+ {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Debug|x64.Build.0 = Debug|x64
+ {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Debug|x86.ActiveCfg = Debug|x86
+ {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Debug|x86.Build.0 = Debug|x86
+ {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Release|Win32.ActiveCfg = Release|x64
+ {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Release|x64.ActiveCfg = Release|x64
+ {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Release|x64.Build.0 = Release|x64
+ {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Release|x86.ActiveCfg = Release|x86
+ {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.Release|x86.Build.0 = Release|x86
+ {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.RelWithDebInfo|Win32.ActiveCfg = RelWithDebInfo|x64
+ {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
+ {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
+ {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.RelWithDebInfo|x86.ActiveCfg = RelWithDebInfo|x86
+ {B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}.RelWithDebInfo|x86.Build.0 = RelWithDebInfo|x86
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/qpid/cpp/bindings/qpid/examples/perl/client.pl b/qpid/cpp/bindings/qpid/examples/perl/client.pl
index 93eec88e07..19d9d3f14f 100644
--- a/qpid/cpp/bindings/qpid/examples/perl/client.pl
+++ b/qpid/cpp/bindings/qpid/examples/perl/client.pl
@@ -20,13 +20,13 @@
use strict;
use warnings;
-use cqpid;
+use cqpid_perl;
my $url = ( @ARGV == 1 ) ? $ARGV[0] : "amqp:tcp:127.0.0.1:5672";
my $connectionOptions = ( @ARGV > 1 ) ? $ARGV[1] : "";
-my $connection = new cqpid::Connection($url, $connectionOptions);
+my $connection = new cqpid_perl::Connection($url, $connectionOptions);
eval {
$connection->open();
@@ -35,7 +35,7 @@ my $session = $connection->createSession();
my $sender = $session->createSender("service_queue");
#create temp queue & receiver...
-my $responseQueue = new cqpid::Address("#response-queue; {create:always, delete:always}");
+my $responseQueue = new cqpid_perl::Address("#response-queue; {create:always, delete:always}");
my $receiver = $session->createReceiver($responseQueue);
#Now send some messages...
@@ -47,7 +47,7 @@ my @s = (
"And the mome raths outgrabe."
);
-my $request = new cqpid::Message();
+my $request = new cqpid_perl::Message();
$request->setReplyTo($responseQueue);
for (my $i=0; $i<4; $i++) {
$request->setContent($s[$i]);
diff --git a/qpid/cpp/bindings/qpid/examples/perl/drain.pl b/qpid/cpp/bindings/qpid/examples/perl/drain.pl
index 8010b7c95b..60ac0c50ed 100644
--- a/qpid/cpp/bindings/qpid/examples/perl/drain.pl
+++ b/qpid/cpp/bindings/qpid/examples/perl/drain.pl
@@ -20,7 +20,7 @@
use strict;
use warnings;
-use cqpid;
+use cqpid_perl;
use Getopt::Long;
my $url = "127.0.0.1";
@@ -47,11 +47,11 @@ if ($#ARGV ge 0) {
}
sub getTimeout {
- return ($forever) ? $cqpid::Duration::FOREVER : new cqpid::Duration($timeout*1000);
+ return ($forever) ? $cqpid_perl::Duration::FOREVER : new cqpid_perl::Duration($timeout*1000);
}
-my $connection = new cqpid::Connection($url, $connectionOptions);
+my $connection = new cqpid_perl::Connection($url, $connectionOptions);
eval {
$connection->open();
@@ -59,13 +59,13 @@ eval {
my $receiver = $session->createReceiver($address);
my $timeout = getTimeout();
- my $message = new cqpid::Message();
+ my $message = new cqpid_perl::Message();
my $i = 0;
while($receiver->fetch($message, $timeout)) {
print "Message(properties=" . $message->getProperties() . ",content='";
if ($message->getContentType() eq "amqp/map") {
- my $content = cqpid::decodeMap($message);
+ my $content = cqpid_perl::decodeMap($message);
map{ print "\n$_ => $content->{$_}"; } keys %{$content};
}
else {
@@ -77,7 +77,7 @@ eval {
if ($replyto->getName()) {
print "Replying to " . $message->getReplyTo()->str() . "...\n";
my $sender = $session->createSender($replyto);
- my $response = new cqpid::Message("received by the server.");
+ my $response = new cqpid_perl::Message("received by the server.");
$sender->send($response);
}
$session->acknowledge();
diff --git a/qpid/cpp/bindings/qpid/examples/perl/hello_world.pl b/qpid/cpp/bindings/qpid/examples/perl/hello_world.pl
index cf2f05f8b7..a96b98a002 100644
--- a/qpid/cpp/bindings/qpid/examples/perl/hello_world.pl
+++ b/qpid/cpp/bindings/qpid/examples/perl/hello_world.pl
@@ -21,13 +21,13 @@ use strict;
use warnings;
use Data::Dumper;
-use cqpid;
+use cqpid_perl;
my $broker = ( @ARGV > 0 ) ? $ARGV[0] : "localhost:5672";
my $address = ( @ARGV > 1 ) ? $ARGV[0] : "amq.topic";
my $connectionOptions = ( @ARGV > 2 ) ? $ARGV[1] : "";
-my $connection = new cqpid::Connection($broker, $connectionOptions);
+my $connection = new cqpid_perl::Connection($broker, $connectionOptions);
eval {
$connection->open();
@@ -36,12 +36,12 @@ eval {
my $receiver = $session->createReceiver($address);
my $sender = $session->createSender($address);
- $sender->send(new cqpid::Message("Hello world!"));
+ $sender->send(new cqpid_perl::Message("Hello world!"));
- #my $duration = new cqpid::Duration(1000);
+ #my $duration = new cqpid_perl::Duration(1000);
#print ">>>" . $duration->getMilliseconds() . "\n";
- my $message = $receiver->fetch($cqpid::Duration::SECOND);
+ my $message = $receiver->fetch($cqpid_perl::Duration::SECOND);
#$message->setDurable(1);
#print "Durable: " . $message->getDurable() . "\n";
diff --git a/qpid/cpp/bindings/qpid/examples/perl/hello_xml.pl b/qpid/cpp/bindings/qpid/examples/perl/hello_xml.pl
index c48a5225c2..cebf2ceee6 100644
--- a/qpid/cpp/bindings/qpid/examples/perl/hello_xml.pl
+++ b/qpid/cpp/bindings/qpid/examples/perl/hello_xml.pl
@@ -20,7 +20,7 @@
use strict;
use warnings;
-use cqpid;
+use cqpid_perl;
my $broker = ( @ARGV > 0 ) ? $ARGV[0] : "localhost:5672";
my $connectionOptions = ( @ARGV > 1 ) ? $ARGV[1] : "";
@@ -44,7 +44,7 @@ x-bindings: [{ exchange: xml-exchange, key: weather, arguments: { xquery:" $quer
END
-my $connection = new cqpid::Connection($broker, $connectionOptions);
+my $connection = new cqpid_perl::Connection($broker, $connectionOptions);
eval {
$connection->open();
@@ -52,7 +52,7 @@ eval {
my $receiver = $session->createReceiver($address);
- my $message = new cqpid::Message();
+ my $message = new cqpid_perl::Message();
my $content = <
diff --git a/qpid/cpp/bindings/qpid/examples/perl/map_receiver.pl b/qpid/cpp/bindings/qpid/examples/perl/map_receiver.pl
index e3e8a201dd..2e2611e38f 100644
--- a/qpid/cpp/bindings/qpid/examples/perl/map_receiver.pl
+++ b/qpid/cpp/bindings/qpid/examples/perl/map_receiver.pl
@@ -21,21 +21,21 @@ use strict;
use warnings;
use Data::Dumper;
-use cqpid;
+use cqpid_perl;
my $url = ( @ARGV > 0 ) ? $ARGV[0] : "amqp:tcp:127.0.0.1:5672";
my $address = ( @ARGV > 1 ) ? $ARGV[0] : "message_queue; {create: always}";
my $connectionOptions = ( @ARGV > 2 ) ? $ARGV[1] : "";
-my $connection = new cqpid::Connection($url, $connectionOptions);
+my $connection = new cqpid_perl::Connection($url, $connectionOptions);
eval {
$connection->open();
my $session = $connection->createSession();
my $receiver = $session->createReceiver($address);
- my $content = cqpid::decodeMap($receiver->fetch());
- #my $content = cqpid::decodeList($receiver->fetch());
+ my $content = cqpid_perl::decodeMap($receiver->fetch());
+ #my $content = cqpid_perl::decodeList($receiver->fetch());
print Dumper($content);
diff --git a/qpid/cpp/bindings/qpid/examples/perl/map_sender.pl b/qpid/cpp/bindings/qpid/examples/perl/map_sender.pl
index 095acce0ab..4107cd48b9 100644
--- a/qpid/cpp/bindings/qpid/examples/perl/map_sender.pl
+++ b/qpid/cpp/bindings/qpid/examples/perl/map_sender.pl
@@ -21,13 +21,13 @@ use strict;
use warnings;
use Data::Dumper;
-use cqpid;
+use cqpid_perl;
my $url = ( @ARGV > 0 ) ? $ARGV[0] : "amqp:tcp:127.0.0.1:5672";
my $address = ( @ARGV > 1 ) ? $ARGV[1] : "message_queue; {create: always}";
my $connectionOptions = ( @ARGV > 2 ) ? $ARGV[2] : "";
-my $connection = new cqpid::Connection($url, $connectionOptions);
+my $connection = new cqpid_perl::Connection($url, $connectionOptions);
eval {
$connection->open();
@@ -35,13 +35,13 @@ eval {
my $session = $connection->createSession();
my $sender = $session->createSender($address);
- my $message = new cqpid::Message();
+ my $message = new cqpid_perl::Message();
my $content = { id => 987654321,
name => "Widget",
percent => sprintf("%.2f", 0.99),
colours => [ qw (red green white) ],
};
- cqpid::encode($content, $message);
+ cqpid_perl::encode($content, $message);
$sender->send($message, 1);
$connection->close();
diff --git a/qpid/cpp/bindings/qpid/examples/perl/server.pl b/qpid/cpp/bindings/qpid/examples/perl/server.pl
index 0c64f15c66..b14da565b9 100644
--- a/qpid/cpp/bindings/qpid/examples/perl/server.pl
+++ b/qpid/cpp/bindings/qpid/examples/perl/server.pl
@@ -20,13 +20,13 @@
use strict;
use warnings;
-use cqpid;
+use cqpid_perl;
my $url = ( @ARGV == 1 ) ? $ARGV[0] : "amqp:tcp:127.0.0.1:5672";
my $connectionOptions = ( @ARGV > 1 ) ? $ARGV[1] : "";
-my $connection = new cqpid::Connection($url, $connectionOptions);
+my $connection = new cqpid_perl::Connection($url, $connectionOptions);
eval {
$connection->open();
@@ -41,7 +41,7 @@ eval {
my $sender = $session->createSender($address);
my $s = $request->getContent();
$s = uc($s);
- my $response = new cqpid::Message($s);
+ my $response = new cqpid_perl::Message($s);
$sender->send($response);
print "Processed request: " . $request->getContent() . " -> " . $response->getContent() . "\n";
$session->acknowledge();
diff --git a/qpid/cpp/bindings/qpid/examples/perl/spout.pl b/qpid/cpp/bindings/qpid/examples/perl/spout.pl
index 50773a4fe2..7365e732bf 100644
--- a/qpid/cpp/bindings/qpid/examples/perl/spout.pl
+++ b/qpid/cpp/bindings/qpid/examples/perl/spout.pl
@@ -20,7 +20,7 @@
use strict;
use warnings;
-use cqpid;
+use cqpid_perl;
use Getopt::Long;
use Time::Local;
@@ -77,19 +77,19 @@ sub setProperties {
}
}
-my $connection = new cqpid::Connection($url, $connectionOptions);
+my $connection = new cqpid_perl::Connection($url, $connectionOptions);
eval {
$connection->open();
my $session = $connection->createSession();
my $sender = $session->createSender($address);
- my $message = new cqpid::Message();
+ my $message = new cqpid_perl::Message();
setProperties($message) if (@properties);
if (@entries) {
my $content = {};
setEntries($content);
- cqpid::encode($content, $message);
+ cqpid_perl::encode($content, $message);
}
elsif ($content) {
$message->setContent($content);
@@ -98,7 +98,7 @@ eval {
my $receiver;
if ($replyto) {
- my $responseQueue = new cqpid::Address($replyto);
+ my $responseQueue = new cqpid_perl::Address($replyto);
$receiver = $session->createReceiver($responseQueue);
$message->setReplyTo($responseQueue);
}
diff --git a/qpid/cpp/bindings/qpid/perl/CMakeLists.txt b/qpid/cpp/bindings/qpid/perl/CMakeLists.txt
new file mode 100644
index 0000000000..da3c0be41a
--- /dev/null
+++ b/qpid/cpp/bindings/qpid/perl/CMakeLists.txt
@@ -0,0 +1,39 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+##------------------------------------------------------
+## Use Swig to generate a literal binding to the C++ API
+##------------------------------------------------------
+set(CMAKE_SWIG_FLAGS "-w361,362,401,467,503")
+set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/perl.i PROPERTIES CPLUSPLUS ON)
+set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/perl.i PROPERTIES SWIG_FLAGS "-I${qpid-cpp_SOURCE_DIR}/include")
+
+swig_add_module(cqpid_perl perl ${CMAKE_CURRENT_SOURCE_DIR}/perl.i)
+swig_link_libraries(cqpid_perl qpidmessaging qpidtypes qmf2 ${PERL_LIBRARY})
+
+set_source_files_properties(${swig_generated_file_fullname} PROPERTIES COMPILE_FLAGS "-I${PERL_INCLUDE_PATH} -I${qpid-cpp_SOURCE_DIR}/include")
+
+##----------------------------------
+## Install the complete Perl binding
+##----------------------------------
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libcqpid_perl.so
+ ${CMAKE_CURRENT_BINARY_DIR}/cqpid_perl.pm
+ DESTINATION ${PERL_VENDORARCH}
+ COMPONENT ${QPID_COMPONENT_CLIENT}
+ )
diff --git a/qpid/cpp/bindings/qpid/perl/Makefile.am b/qpid/cpp/bindings/qpid/perl/Makefile.am
index 982d493ba0..13ab66f032 100644
--- a/qpid/cpp/bindings/qpid/perl/Makefile.am
+++ b/qpid/cpp/bindings/qpid/perl/Makefile.am
@@ -22,21 +22,21 @@ if HAVE_PERL_DEVEL
INCLUDES = -I$(top_srcdir)/include -I$(top_builddir)/include -I$(top_srcdir)/src -I$(top_builddir)/src -I$(PERL_INC)
EXTRA_DIST = perl.i
-BUILT_SOURCES = cqpid.cpp
+BUILT_SOURCES = cqpid_perl.cpp
SWIG_FLAGS = -w362,401
-cqpid.cpp: $(srcdir)/perl.i $(srcdir)/../qpid.i $(srcdir)/../../swig_perl_typemaps.i
- $(SWIG) -perl -c++ $(SWIG_FLAGS) $(INCLUDES) $(QPID_CXXFLAGS) -I/usr/include -o cqpid.cpp $(srcdir)/perl.i
+cqpid_perl.cpp: $(srcdir)/perl.i $(srcdir)/../qpid.i $(srcdir)/../../swig_perl_typemaps.i
+ $(SWIG) -perl -c++ $(SWIG_FLAGS) $(INCLUDES) $(QPID_CXXFLAGS) -I/usr/include -o cqpid_perl.cpp $(srcdir)/perl.i
-lib_LTLIBRARIES = cqpid.la
-cqpid_PERL = cqpid.pm
+lib_LTLIBRARIES = libcqpid_perl.la
+cqpid_perl_PERL = cqpid_perl.pm
-cqpid_la_LDFLAGS = -avoid-version -module -shared
-cqpid_la_LIBADD = -L$(top_builddir)/src/.libs -lqpidmessaging -lqpidtypes \
+libcqpid_perl_la_LDFLAGS = -avoid-version -shared
+libcqpid_perl_la_LIBADD = -L$(top_builddir)/src/.libs -lqpidmessaging -lqpidtypes \
$(top_builddir)/src/libqpidmessaging.la $(top_builddir)/src/libqpidtypes.la
-cqpid_la_CXXFLAGS = $(INCLUDES)
-nodist_cqpid_la_SOURCES = cqpid.cpp
+libcqpid_perl_la_CXXFLAGS = $(INCLUDES)
+nodist_libcqpid_perl_la_SOURCES = cqpid_perl.cpp
-CLEANFILES = cqpid.cpp cqpid.pm
+CLEANFILES = cqpid_perl.cpp cqpid_perl.pm
endif # HAVE_PERL_DEVEL
diff --git a/qpid/cpp/bindings/qpid/perl/perl.i b/qpid/cpp/bindings/qpid/perl/perl.i
index b7ae0568b6..38ac91761f 100644
--- a/qpid/cpp/bindings/qpid/perl/perl.i
+++ b/qpid/cpp/bindings/qpid/perl/perl.i
@@ -17,7 +17,7 @@
* under the License.
*/
-%module cqpid
+%module cqpid_perl
%include "std_string.i"
%include "../../swig_perl_typemaps.i"
diff --git a/qpid/cpp/bindings/qpid/python/CMakeLists.txt b/qpid/cpp/bindings/qpid/python/CMakeLists.txt
new file mode 100644
index 0000000000..51c983f3cf
--- /dev/null
+++ b/qpid/cpp/bindings/qpid/python/CMakeLists.txt
@@ -0,0 +1,46 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+##------------------------------------------------------
+## Use Swig to generate a literal binding to the C++ API
+##------------------------------------------------------
+set(CMAKE_SWIG_FLAGS "-w361,362,401,467")
+set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/python.i PROPERTIES CPLUSPLUS ON)
+set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/python.i PROPERTIES SWIG_FLAGS "-I${qpid-cpp_SOURCE_DIR}/include")
+
+swig_add_module(cqpid python ${CMAKE_CURRENT_SOURCE_DIR}/python.i)
+swig_link_libraries(cqpid qpidmessaging qpidtypes qmf2 ${PYTHON_LIBRARIES})
+
+set_source_files_properties(${swig_generated_file_fullname} PROPERTIES COMPILE_FLAGS "-fno-strict-aliasing -I${PYTHON_INCLUDE_PATH} -I${qpid-cpp_SOURCE_DIR}/include")
+
+##------------------------------------
+## Install the complete Python binding
+##------------------------------------
+execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()" OUTPUT_VARIABLE PYTHON_SITE_PACKAGES OUTPUT_STRIP_TRAILING_WHITESPACE)
+install(CODE "execute_process(COMMAND ${PYTHON_EXECUTABLE} -m py_compile cqpid.py
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})")
+install(CODE "execute_process(COMMAND ${PYTHON_EXECUTABLE} -O -m py_compile cqpid.py
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})")
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/cqpid.py
+ ${CMAKE_CURRENT_BINARY_DIR}/cqpid.pyc
+ ${CMAKE_CURRENT_BINARY_DIR}/cqpid.pyo
+ ${CMAKE_CURRENT_BINARY_DIR}/_cqpid.so
+ DESTINATION ${PYTHON_SITE_PACKAGES}
+ COMPONENT ${QPID_COMPONENT_CLIENT}
+ )
diff --git a/qpid/cpp/bindings/qpid/qpid.i b/qpid/cpp/bindings/qpid/qpid.i
index e60ce1ce7c..01f9bff64d 100644
--- a/qpid/cpp/bindings/qpid/qpid.i
+++ b/qpid/cpp/bindings/qpid/qpid.i
@@ -27,6 +27,7 @@
#include
#include
#include
+#include
//
// Wrapper functions for map-decode and list-decode. This allows us to avoid
@@ -56,6 +57,7 @@ qpid::types::Variant::List& decodeList(const qpid::messaging::Message& msg) {
%include
%include
%include
+%include
qpid::types::Variant::Map& decodeMap(const qpid::messaging::Message&);
qpid::types::Variant::List& decodeList(const qpid::messaging::Message&);
diff --git a/qpid/cpp/bindings/qpid/ruby/CMakeLists.txt b/qpid/cpp/bindings/qpid/ruby/CMakeLists.txt
new file mode 100644
index 0000000000..7113d93b62
--- /dev/null
+++ b/qpid/cpp/bindings/qpid/ruby/CMakeLists.txt
@@ -0,0 +1,39 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+##------------------------------------------------------
+## Use Swig to generate a literal binding to the C++ API
+##------------------------------------------------------
+set(CMAKE_SWIG_FLAGS "-w361,362,401,467")
+set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/ruby.i PROPERTIES CPLUSPLUS ON)
+set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/ruby.i PROPERTIES SWIG_FLAGS "-I${qpid-cpp_SOURCE_DIR}/include")
+
+swig_add_module(cqpid ruby ${CMAKE_CURRENT_SOURCE_DIR}/ruby.i)
+swig_link_libraries(cqpid qpidmessaging qpidtypes qmf2 ${RUBY_LIBRARY})
+
+set_source_files_properties(${swig_generated_file_fullname} PROPERTIES COMPILE_FLAGS "-I${RUBY_INCLUDE_DIR} -I${qpid-cpp_SOURCE_DIR}/include")
+
+##----------------------------------
+## Install the complete Ruby binding
+##----------------------------------
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libcqpid.so
+ RENAME cqpid.so
+ DESTINATION ${RUBY_SITEARCH_DIR}
+ COMPONENT ${QPID_COMPONENT_CLIENT}
+ )
diff --git a/qpid/cpp/src/CMakeLists.txt b/qpid/cpp/src/CMakeLists.txt
index 4b5a1b1c2c..d0ca2d9c2b 100644
--- a/qpid/cpp/src/CMakeLists.txt
+++ b/qpid/cpp/src/CMakeLists.txt
@@ -313,10 +313,6 @@ if (NOT Boost_FILESYSTEM_LIBRARY)
set(Boost_FILESYSTEM_LIBRARY boost_filesystem)
endif (NOT Boost_FILESYSTEM_LIBRARY)
-if (NOT Boost_SYSTEM_LIBRARY)
- set(Boost_SYSTEM_LIBRARY boost_system)
-endif (NOT Boost_SYSTEM_LIBRARY)
-
if (NOT Boost_UNIT_TEST_FRAMEWORK_LIBRARY)
set(Boost_UNIT_TEST_FRAMEWORK_LIBRARY boost_unit_test_framework)
endif (NOT Boost_UNIT_TEST_FRAMEWORK_LIBRARY)
@@ -602,14 +598,14 @@ if (CMAKE_SYSTEM_NAME STREQUAL Windows)
set (CMAKE_CXX_FLAGS_RELWITHDEBINFO "/MD /O2 /Ob2 /D NDEBUG")
set (CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO "/debug /INCREMENTAL:NO")
- # Set the windows version for the .NET Binding cpp project
- configure_file(${CMAKE_CURRENT_SOURCE_DIR}/../bindings/qpid/dotnet/src/org.apache.qpid.messaging.template.rc
- ${CMAKE_CURRENT_BINARY_DIR}/windows/resources/org.apache.qpid.messaging.rc)
-
- # Set the windows version for the .NET Binding sessionreceiver project
- configure_file(${CMAKE_CURRENT_SOURCE_DIR}/../bindings/qpid/dotnet/src/sessionreceiver/properties/sessionreceiver-AssemblyInfo-template.cs
- ${CMAKE_CURRENT_BINARY_DIR}/windows/generated_src/sessionreceiver-AssemblyInfo.cs)
-
+ if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../bindings/qpid/dotnet/src)
+ # Set the windows version for the .NET Binding cpp project
+ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/../bindings/qpid/dotnet/src/org.apache.qpid.messaging.template.rc
+ ${CMAKE_CURRENT_BINARY_DIR}/windows/resources/org.apache.qpid.messaging.rc)
+ # Set the windows version for the .NET Binding sessionreceiver project
+ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/../bindings/qpid/dotnet/src/sessionreceiver/properties/sessionreceiver-AssemblyInfo-template.cs
+ ${CMAKE_CURRENT_BINARY_DIR}/windows/generated_src/sessionreceiver-AssemblyInfo.cs)
+ endif (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../bindings/qpid/dotnet/src)
endif (MSVC)
set (qpidtypes_platform_SOURCES
@@ -1068,13 +1064,15 @@ endif (CPACK_GENERATOR STREQUAL "NSIS")
# REVISION => Version of underlying implementation.
# Bump if implementation changes but API/ABI doesn't
# AGE => Number of API/ABI versions this is backward compatible with
-set (qmf_version 1.0.0)
+set (qmf_version 2.0.0)
+set (qmf2_version 1.0.0)
set (qmfengine_version 1.0.0)
set (qmf_SOURCES
qpid/agent/ManagementAgentImpl.cpp
qpid/agent/ManagementAgentImpl.h
)
+
add_msvc_version (qmf library dll)
add_library (qmf SHARED ${qmf_SOURCES})
target_link_libraries (qmf qpidclient)
@@ -1085,6 +1083,83 @@ install (TARGETS qmf OPTIONAL
COMPONENT ${QPID_COMPONENT_QMF})
install_pdb (qmf ${QPID_COMPONENT_QMF})
+if(NOT WIN32)
+ set (qmf2_HEADERS
+ ../include/qmf/AgentEvent.h
+ ../include/qmf/Agent.h
+ ../include/qmf/AgentSession.h
+ ../include/qmf/ConsoleEvent.h
+ ../include/qmf/ConsoleSession.h
+ ../include/qmf/DataAddr.h
+ ../include/qmf/Data.h
+ ../include/qmf/exceptions.h
+ ../include/qmf/Handle.h
+ ../include/qmf/ImportExport.h
+ ../include/qmf/Query.h
+ ../include/qmf/Schema.h
+ ../include/qmf/SchemaId.h
+ ../include/qmf/SchemaMethod.h
+ ../include/qmf/SchemaProperty.h
+ ../include/qmf/SchemaTypes.h
+ ../include/qmf/Subscription.h
+ )
+
+ set (qmf2_SOURCES
+ ${qmf2_HEADERS}
+ qmf/agentCapability.h
+ qmf/Agent.cpp
+ qmf/AgentEvent.cpp
+ qmf/AgentEventImpl.h
+ qmf/AgentImpl.h
+ qmf/AgentSession.cpp
+ qmf/AgentSubscription.cpp
+ qmf/AgentSubscription.h
+ qmf/ConsoleEvent.cpp
+ qmf/ConsoleEventImpl.h
+ qmf/ConsoleSession.cpp
+ qmf/ConsoleSessionImpl.h
+ qmf/constants.cpp
+ qmf/constants.h
+ qmf/DataAddr.cpp
+ qmf/DataAddrImpl.h
+ qmf/Data.cpp
+ qmf/DataImpl.h
+ qmf/exceptions.cpp
+ qmf/Expression.cpp
+ qmf/Expression.h
+ qmf/Hash.cpp
+ qmf/Hash.h
+ qmf/PrivateImplRef.h
+ qmf/Query.cpp
+ qmf/QueryImpl.h
+ qmf/Schema.cpp
+ qmf/SchemaCache.cpp
+ qmf/SchemaCache.h
+ qmf/SchemaId.cpp
+ qmf/SchemaIdImpl.h
+ qmf/SchemaImpl.h
+ qmf/SchemaMethod.cpp
+ qmf/SchemaMethodImpl.h
+ qmf/SchemaProperty.cpp
+ qmf/SchemaPropertyImpl.h
+ qmf/Subscription.cpp
+ qmf/SubscriptionImpl.h
+ )
+
+ add_msvc_version (qmf2 library dll)
+ add_library (qmf2 SHARED ${qmf2_SOURCES})
+ target_link_libraries (qmf2 qpidmessaging qpidtypes qpidclient qpidcommon)
+ set_target_properties (qmf2 PROPERTIES
+ VERSION ${qmf2_version})
+ install (TARGETS qmf2 OPTIONAL
+ DESTINATION ${QPID_INSTALL_LIBDIR}
+ COMPONENT ${QPID_COMPONENT_QMF})
+ install (FILES ${qmf2_HEADERS}
+ DESTINATION ${QPID_INSTALL_INCLUDEDIR}/qmf
+ COMPONENT ${QPID_COMPONENT_QMF})
+ install_pdb (qmf2 ${QPID_COMPONENT_QMF})
+endif (NOT WIN32)
+
set (qmfengine_SOURCES
qmf/engine/Agent.cpp
qmf/engine/BrokerProxyImpl.cpp
diff --git a/qpid/cpp/src/Makefile.am b/qpid/cpp/src/Makefile.am
index 6fafff7d54..dfb2547613 100644
--- a/qpid/cpp/src/Makefile.am
+++ b/qpid/cpp/src/Makefile.am
@@ -56,7 +56,10 @@ windows_dist = \
qpid/broker/windows/BrokerDefaults.cpp \
qpid/broker/windows/SaslAuthenticator.cpp \
qpid/broker/windows/SslProtocolFactory.cpp \
- qpid/messaging/HandleInstantiator.cpp
+ qpid/messaging/HandleInstantiator.cpp \
+ windows/resources/template-resource.rc \
+ windows/resources/version-resource.h \
+ windows/resources/qpid-icon.ico
EXTRA_DIST= $(platform_dist) $(rgen_srcs) $(windows_dist)
diff --git a/qpid/cpp/src/qpid/management/ManagementAgent.cpp b/qpid/cpp/src/qpid/management/ManagementAgent.cpp
index 23c999a98a..8b4defaa73 100644
--- a/qpid/cpp/src/qpid/management/ManagementAgent.cpp
+++ b/qpid/cpp/src/qpid/management/ManagementAgent.cpp
@@ -31,6 +31,7 @@
#include
#include "qpid/framing/MessageTransferBody.h"
#include "qpid/sys/Time.h"
+#include "qpid/sys/Thread.h"
#include "qpid/broker/ConnectionState.h"
#include "qpid/broker/AclModule.h"
#include "qpid/types/Variant.h"
@@ -2237,6 +2238,7 @@ void ManagementAgent::dispatchAgentCommandLH(Message& msg, bool viaLocal)
uint32_t bufferLen = inBuffer.getPosition();
inBuffer.reset();
+ setManagementExecutionContext((const qpid::broker::ConnectionState*) msg.getPublisher());
const framing::FieldTable *headers = msg.getApplicationHeaders();
if (headers && msg.getAppId() == "qmf2")
{
@@ -3085,3 +3087,21 @@ bool ManagementAgent::moveDeletedObjectsLH() {
}
return !deleteList.empty();
}
+
+namespace qpid {
+namespace management {
+
+namespace {
+QPID_TSS const qpid::broker::ConnectionState* executionContext = 0;
+}
+
+void setManagementExecutionContext(const qpid::broker::ConnectionState* ctxt)
+{
+ executionContext = ctxt;
+}
+const qpid::broker::ConnectionState* getManagementExecutionContext()
+{
+ return executionContext;
+}
+
+}}
diff --git a/qpid/cpp/src/qpid/management/ManagementAgent.h b/qpid/cpp/src/qpid/management/ManagementAgent.h
index 0db19594a7..fb15dc6ed1 100644
--- a/qpid/cpp/src/qpid/management/ManagementAgent.h
+++ b/qpid/cpp/src/qpid/management/ManagementAgent.h
@@ -41,6 +41,9 @@
#include
The broker executable is installed in the bin
subdirectory
of your Qpid installation directory. The broker program is
-qpidd.exe
. The simplest way to experiment with the
-broker is to open a command prompt window, cd to the installation
-directory, and execute the broker:
+qpidd.exe
. The installation procedure adds the Qpid bin
+directory to the PATH environment variable, so the simplest way to experiment
+with the broker is to open a command prompt window and execute the broker:
-cd "C:\Program Files\Apache\qpidc-0.6\bin"
qpidd
A small amount of information will be displayed to let you know the broker
@@ -65,60 +64,24 @@ channel (C++ Broker Compatible)."
Notes
Please read the following sections for important notes regarding this
release.
-WCF Channel
-This release includes a new .NET WCF Channel implementation. The WCF DLL
-is named Apache.Qpid.Channel.dll
located in the bin
-directory under the Qpid installation location.
-WCF Channel programming examples are located in the
-examples\Channel
under the installation directory.
-The WCF Channel DLLs are not loaded into the Global Assembly Cache (GAC)
-at install time; therefore, they must be referenced explicitly from the install
-location.
-If you wish to install the WCF Channel DLLs into the GAC, you can use the
-following commands (assuming the Qpid install location is
-C:\Program Files\Apache\qpidc-0.6
):
-
-gacutil -I "C:\Program Files\Apache\qpidc-0.6\bin\Apache.Qpid.Channel.dll"
-gacutil -I "C:\Program Files\Apache\qpidc-0.6\bin\Apache.Qpid.Interop.dll"
-
-To remove the DLLs from the GAC:
-
-gacutil /u "Apache.Qpid.Channel"
-gacutil /u "Apache.Qpid.Interop"
-
-To use transactions with the WCF channel, you must enable the Microsoft Distributed Transaction Coordinator service and configure it to find and use the Qpid XA transaction module.
-
--
-Update the PATH environment variable for services:
-right click Computer, select Properties > Advanced System
-Settings > Environment Variables > System Variables and add
-"C:\Program Files\Apache\qpidc-0.6\bin" to the PATH variable.
-
-
-Following the instructions in
-
-http://support.microsoft.com/kb/817066,
-update the MSDTC security settings to allow XA transactions, and
-create an XADLL registry entry for "qpidxarm" with string (REG_SZ)
-value "C:\Program Files\Apache\qpidc-0.6\bin\qpidxarm.dll"
-
-
-Open Control Panel > Administrative Tools > Services and start
-(or restart) the DTC service and make sure that the DTC service is set
-to start automatically when the system reboots.
-
-Broker Persistence Module
-This release includes a new persistence module. The broker can use this
+
CLFS-Based Broker Persistence Module
+This release includes a second persistence module. The broker can use this
module to facilitate durable queues, exchanges, bindings, configuration, and
-messages. The persistence module uses SQL Server Express (or SQL Server) 2005
-or newer. The persistence module is a Qpid broker plugin. It is not loaded by
+messages. The new persistence module, like the SQL-based store introduced in
+Qpid 0.6, uses SQL Server Express (or SQL Server) 2005 or newer. However, it
+also used Common Log File System (CLFS) to store message and transaction-related
+information. CLFS and, thus, the new store, is available on Windows Vista and
+Server 2005 and newer.
+The persistence module is a Qpid broker plugin. It is not loaded by
default; therefore, to gain support for durable items the persistence plugin
must be loaded into the broker. This can be done using the
---module-dir
option to load all available plugins. For example:
+--load-module
option to load the needed plugins. For example:
-cd "C:\Program Files\Apache\qpidc-0.6"
-bin\qpidd.exe --module-dir plugins\broker
+cd "C:\Program Files\Apache\qpidc-0.9"
+qpidd.exe --load-module plugins\broker\store.dll --load-module plugins\broker\msclfs_store.dll
-The --module-dir
option can also take a full path. The option
+The --load-module
option can also take a full path. The option
can also be included in the broker configuration file. A sample is located
in the conf\qpidd.conf
file under the installation directory.
diff --git a/qpid/packaging/windows/installer.proj b/qpid/packaging/windows/installer.proj
index de68b05626..7be5fda472 100644
--- a/qpid/packaging/windows/installer.proj
+++ b/qpid/packaging/windows/installer.proj
@@ -45,6 +45,7 @@
%22Visual Studio 9 2008 Win64%22
x64
x64
+ x64
@@ -53,23 +54,32 @@
%22Visual Studio 9 2008%22
x86
Win32
+ Win32
+
+
+
+
+
+
+
+
@@ -82,6 +92,20 @@
Exclude="$(source_root)\wcf\samples\**\.svn\**"/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -142,13 +166,22 @@
+
+
+
+
+
+ DependsOnTargets="BuildCpp;BuildCppDebug;BuildWcf;BuildDocs;BuildDotNetBindings">
+
+
@@ -178,9 +217,9 @@
OutputFile="boost_dlls.wxs" />
+ OutputFile="qpidc-0.9-x64.msi" />
-->
@@ -194,9 +233,9 @@
+ Command="candle -dqpidc_version=0.9 -dProgramFiles=$(ProgramFiles) -dstaging_dir=$(staging_dir) -dqpid_headers_dir=$(staging_dir)\include\qpid -dboost_headers_dir=$(staging_dir)\include\boost -dboost_dll_dir=$(staging_dir)\bin\boost -dexamples_dir=$(staging_dir)\examples -dapi_docs_dir=$(staging_dir)\docs\api -ext WiXNetFxExtension qpidc.wxs qpid_headers.wxs boost_headers.wxs boost_dlls.wxs examples.wxs api_docs.wxs -arch $(Architecture)" />
+ Command="light -ext WiXNetFxExtension -ext WixUtilExtension -ext WixUIExtension -cultures:en-us -out qpidc-0.9-$(Architecture).msi qpidc.wixobj qpid_headers.wixobj boost_headers.wixobj boost_dlls.wixobj examples.wixobj api_docs.wixobj" />
diff --git a/qpid/packaging/windows/qpidc.wxs b/qpid/packaging/windows/qpidc.wxs
index 924e92d20f..8e73ea0661 100644
--- a/qpid/packaging/windows/qpidc.wxs
+++ b/qpid/packaging/windows/qpidc.wxs
@@ -20,30 +20,39 @@
-->
-
-
+
+
+ UpgradeCode="{94677A0C-606C-49d8-BB63-DF2F6F6D780F}">
+
+
+
+
+
-
+
+
+
@@ -62,6 +71,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -81,15 +119,22 @@
-
-
+
+
+
+
+
+
+
+
+
+
@@ -100,9 +145,45 @@
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -119,6 +200,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
@@ -129,10 +222,19 @@
-
+
+
+
+
+
+
+ = 502)]]>
+
+
+
@@ -152,23 +254,44 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
diff --git a/qpid/specs/management-schema.xml b/qpid/specs/management-schema.xml
index 303668eb36..e52e3f23cf 100644
--- a/qpid/specs/management-schema.xml
+++ b/qpid/specs/management-schema.xml
@@ -102,6 +102,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+