svn commit: r1026227 - /qpid/trunk/qpid/cpp/src/qpid/broker/Broker.cpp

2010-10-22 Thread mgoulish
Author: mgoulish
Date: Fri Oct 22 07:13:34 2010
New Revision: 1026227

URL: http://svn.apache.org/viewvc?rev=1026227&view=rev
Log:
Make the "SASL enabled" log message also print out the SASL version number.   
This will be useful in one test that depends on some SASL functionality that 
was not available before 2.1.22 .

Modified:
qpid/trunk/qpid/cpp/src/qpid/broker/Broker.cpp

Modified: qpid/trunk/qpid/cpp/src/qpid/broker/Broker.cpp
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/Broker.cpp?rev=1026227&r1=1026226&r2=1026227&view=diff
==
--- qpid/trunk/qpid/cpp/src/qpid/broker/Broker.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/Broker.cpp Fri Oct 22 07:13:34 2010
@@ -55,6 +55,8 @@
 #include "qpid/Url.h"
 #include "qpid/Version.h"
 
+#include "sasl/sasl.h"
+
 #include 
 #include 
 
@@ -271,7 +273,9 @@ Broker::Broker(const Broker::Options& co
  */
 if (conf.auth) {
 SaslAuthenticator::init(qpid::saslName, conf.saslConfigPath);
-QPID_LOG(info, "SASL enabled");
+int saslVersion = (SASL_VERSION_MAJOR << 16) + (SASL_VERSION_MINOR << 
8) +
+SASL_VERSION_STEP;
+QPID_LOG(info, "SASL enabled : version " << saslVersion);
 } else {
 QPID_LOG(notice, "SASL disabled: No Authentication Performed");
 }



-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



svn commit: r1026233 - /qpid/trunk/qpid/cpp/src/tests/sasl_fed

2010-10-22 Thread mgoulish
Author: mgoulish
Date: Fri Oct 22 07:57:35 2010
New Revision: 1026233

URL: http://svn.apache.org/viewvc?rev=1026233&view=rev
Log:
Fix this test to parse the sasl version number out of the new logging statement 
printed by broker #2 -- and exit if the version number is too low to support 
redirection of the sasl database file.

Modified:
qpid/trunk/qpid/cpp/src/tests/sasl_fed

Modified: qpid/trunk/qpid/cpp/src/tests/sasl_fed
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/sasl_fed?rev=1026233&r1=1026232&r2=1026233&view=diff
==
--- qpid/trunk/qpid/cpp/src/tests/sasl_fed (original)
+++ qpid/trunk/qpid/cpp/src/tests/sasl_fed Fri Oct 22 07:57:35 2010
@@ -2,23 +2,6 @@
 
 source test_env.sh
 
-minimum_sasl_version="2.1.22"
-if [ ! `pkg-config --atleast-version $minimum_sasl_version cyrus-sasl`]; then
-  echo "sasl_fed requires at least $minimum_sasl_version"
-  exit 0
-fi
-
-let minimum_sasl_version=$((2 * 65536 + 1 * 256 + 22))
-sasl_version_numbers=(`rpm -q cyrus-sasl-devel | head -1 | tr '-' ' ' | awk 
'{print $4}' | tr '.' ' '`)
-let sasl_version=$((${sasl_version_numbers[0]} * 65536 + 
${sasl_version_numbers[1]} * 256 + ${sasl_version_numbers[2]}))
-
-if [ "$sasl_version" -lt "$minimum_sasl_version" ]; then
-  echo "sasl_fed requires version 2.1.22 or later"
-  exit 0
-fi
-
-exit
-
 QPID_SRC=$top_srcdir/src
 QPIDD=$QPID_SRC/.libs/qpidd
 PY_TOOLS=$QPID_TOOLS/src/py
@@ -63,9 +46,17 @@ $QPIDD  
 
 broker_2_port=`cat $tmp_root/broker_2_port`
 
+sleep 2
+
+# Grep the sasl version out of broker 2's log
+sasl_version=`cat $tmp_root/qpidd_2.log | grep "SASL enabled" | tr ' ' '\n' | 
tail -1`
 
-# Now find the PIDs so I can kill them later.
-#pids=`ps -aef | grep -v grep | grep sasl_fed | grep $my_random_number  | awk 
'{print $2}'`
+# Minimum sasl version I can use is 2.1.22 == (2<<16) + (1<<8) + 22 == 131350.
+if [ "$sasl_version" -lt "131350" ]; then
+  echo "sasl_fed test requires SASL version 2.1.22 or greater"
+  # but this should not cause a test failure.
+  exit 0
+fi
 
 
 # I am not randomizing these names, because the test creates its own brokers.
@@ -137,11 +128,11 @@ $QPIDD --port $broker_2_port --quit
 #--
 rm -rf $tmp_root
 
-if [ "$broker_2_message_count" =  "$n_messages" ]; then
-  echo "good: $broker_2_message_count"
+if [ "$broker_2_message_count" -eq  "$n_messages" ]; then
+  # echo "good: |$broker_2_message_count| == |$n_messages|"
   exit 0
 else
-  echo "not ideal: $broker_1_message_count != $n_messages"
+  # echo "not ideal: |$broker_1_message_count| != |$n_messages|"
   exit 1
 fi
 



-
Apache Qpid - AMQP Messaging Implementation
Project:  http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org



svn commit: r1026436 - in /qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src: org.apache.qpid.messaging.vcproj sessionreceiver/org.apache.qpid.messaging.sessionreceiver.csproj sessionreceiver/qpid.snk

2010-10-22 Thread chug
Author: chug
Date: Fri Oct 22 18:06:07 2010
New Revision: 1026436

URL: http://svn.apache.org/viewvc?rev=1026436&view=rev
Log:
QPID-2913 QPID Cpp Messaging Libraries for WinSDK Are Not Signed

* Add the strong key file signature to all variants of 
org.apache.qpid.messaging.
* Clone the qpid.snk file from messaging to sessionreceiver.
* Add the strong key file signature to all variants of 
org.apache.qpid.messaging.sessionreceiver.

Added:
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/sessionreceiver/qpid.snk   
(with props)
Modified:

qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/org.apache.qpid.messaging.vcproj

qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/sessionreceiver/org.apache.qpid.messaging.sessionreceiver.csproj

Modified: 
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/org.apache.qpid.messaging.vcproj
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/org.apache.qpid.messaging.vcproj?rev=1026436&r1=1026435&r2=1026436&view=diff
==
--- 
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/org.apache.qpid.messaging.vcproj 
(original)
+++ 
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/org.apache.qpid.messaging.vcproj 
Fri Oct 22 18:06:07 2010
@@ -249,6 +249,7 @@
GenerateDebugInformation="true"
AssemblyDebug="1"
TargetMachine="1"
+   KeyFile="qpid.snk"
/>



http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/sessionreceiver/org.apache.qpid.messaging.sessionreceiver.csproj?rev=1026436&r1=1026435&r2=1026436&view=diff
==
--- 
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/sessionreceiver/org.apache.qpid.messaging.sessionreceiver.csproj
 (original)
+++ 
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/sessionreceiver/org.apache.qpid.messaging.sessionreceiver.csproj
 Fri Oct 22 18:06:07 2010
@@ -1,4 +1,4 @@
-
+
 http://schemas.microsoft.com/developer/msbuild/2003";>
   
 Debug
@@ -12,6 +12,8 @@
 org.apache.qpid.messaging.sessionreceiver
 v3.5
 512
+true
+qpid.snk
   
   
 true
@@ -110,6 +112,9 @@
   Org.Apache.Qpid.Messaging
 
   
+  
+
+  
   
   

svn commit: r1026501 - /qpid/trunk/qpid/cpp/src/tests/store.py

2010-10-22 Thread shuston
Author: shuston
Date: Fri Oct 22 21:40:39 2010
New Revision: 1026501

URL: http://svn.apache.org/viewvc?rev=1026501&view=rev
Log:
Test module to run recovery-oriented store tests.

Added:
qpid/trunk/qpid/cpp/src/tests/store.py

Added: qpid/trunk/qpid/cpp/src/tests/store.py
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/store.py?rev=1026501&view=auto
==
--- qpid/trunk/qpid/cpp/src/tests/store.py (added)
+++ qpid/trunk/qpid/cpp/src/tests/store.py Fri Oct 22 21:40:39 2010
@@ -0,0 +1,197 @@
+#!/usr/bin/env python
+#
+# 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.
+#
+
+import errno, os, time
+from qpid.brokertest import *
+from qpid import compat, session
+from qpid.util import connect
+from qpid.connection import Connection
+from qpid.datatypes import Message, uuid4
+from qpid.queue import Empty
+
+class StoreTests(BrokerTest):
+
+  XA_RBROLLBACK = 1
+  XA_RBTIMEOUT = 2
+  XA_OK = 0
+  tx_counter = 0
+
+  def configure(self, config):
+self.config = config
+self.defines = self.config.defines
+BrokerTest.configure(self, config)
+
+  def setup_connection(self):
+socket = connect(self._broker.host(), self._broker.port())
+return Connection(sock=socket)
+
+  def setup_session(self):
+self.conn.start()
+return self.conn.session(str(uuid4()))
+
+  def start_session(self):
+self.conn = self.setup_connection()
+self.ssn = self.setup_session()
+
+  def setUp(self):
+BrokerTest.setUp(self)
+self._broker = self.broker()
+self.start_session()
+
+  def cycle_broker(self):
+# tearDown resets working dir; change it back after.
+d = os.getcwd()
+BrokerTest.tearDown(self)
+os.chdir(d)
+self._broker = None
+self._broker = self.broker()
+self.conn = self.setup_connection()
+self.ssn = self.setup_session()
+
+  def xid(self, txid):
+StoreTests.tx_counter += 1
+branchqual = "v%s" % StoreTests.tx_counter
+return self.ssn.xid(format=0, global_id=txid, branch_id=branchqual)
+
+  def testDurableExchange(self):
+try:
+  self.ssn.exchange_delete(exchange="DE1")
+except:
+  # restart the session busted from the exception
+  self.start_session()
+
+self.ssn.exchange_declare(exchange="DE1", type="direct", durable=True)
+response = self.ssn.exchange_query(name="DE1")
+self.assert_(response.durable)
+self.assert_(not response.not_found)
+
+# Cycle the broker and make sure the exchange recovers
+self.cycle_broker()
+response = self.ssn.exchange_query(name="DE1")
+self.assert_(response.durable)
+self.assert_(not response.not_found)
+
+self.ssn.exchange_delete(exchange="DE1")
+
+  def testDurableQueues(self):
+try:
+  self.ssn.queue_delete(queue="DQ1")
+except:
+  self.start_session()
+
+self.ssn.queue_declare(queue="DQ1", durable=True)
+response = self.ssn.queue_query(queue="DQ1")
+self.assertEqual("DQ1", response.queue)
+self.assert_(response.durable)
+
+# Cycle the broker and make sure the queue recovers
+self.cycle_broker()
+response = self.ssn.queue_query(queue="DQ1")
+self.assertEqual("DQ1", response.queue)
+self.assert_(response.durable)
+
+self.ssn.queue_delete(queue="DQ1")
+
+  def testDurableBindings(self):
+try:
+  self.ssn.exchange_unbind(queue="DB_Q1", exchange="DB_E1", 
binding_key="K1")
+except:
+  self.start_session()
+try:
+  self.ssn.exchange_delete(exchange="DB_E1")
+except:
+  self.start_session()
+try:
+  self.ssn.queue_delete(queue="DB_Q1")
+except:
+  self.start_session()
+
+self.ssn.queue_declare(queue="DB_Q1", durable=True)
+self.ssn.exchange_declare(exchange="DB_E1", type="direct", durable=True)
+self.ssn.exchange_bind(exchange="DB_E1", queue="DB_Q1", binding_key="K1")
+
+# Cycle the broker and make sure the binding recovers
+self.cycle_broker()
+response = self.ssn.exchange_bound(exchange="DB_E1", queue="DB_Q1", 
binding_key="K1")
+self.assert_(not response.exchange_not_found)
+self.assert_(not response.queue_not_found)
+self.assert_(not response.queue_not_matched)
+self.assert_(not response