qpid-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From kw...@apache.org
Subject svn commit: r1560634 [3/7] - in /qpid/branches/java-broker-bdb-ha: ./ qpid/ qpid/bin/ qpid/cpp/ qpid/cpp/bindings/qmf2/examples/cpp/ qpid/cpp/bindings/qpid/dotnet/src/ qpid/cpp/bindings/qpid/dotnet/src/msvc10/ qpid/cpp/bindings/qpid/dotnet/src/msvc9/ q...
Date Thu, 23 Jan 2014 11:01:08 GMT
Modified: qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/linearstore/journal/utils/rec_tail.c
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/linearstore/journal/utils/rec_tail.c?rev=1560634&r1=1560633&r2=1560634&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/linearstore/journal/utils/rec_tail.c (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/linearstore/journal/utils/rec_tail.c Thu Jan 23 11:01:02 2014
@@ -36,10 +36,11 @@ void rec_tail_copy(rec_tail_t* dest, con
     dest->_rid = src->_rid;
 }
 
-int rec_tail_check(const rec_tail_t* tail, const rec_hdr_t* header, const uint32_t checksum) {
-    if (tail->_xmagic != ~header->_magic) return 1;
-    if (tail->_serial != header->_serial) return 2;
-    if (tail->_rid != header->_rid) return 3;
-    if (tail->_checksum != checksum) return 4;
-    return 0;
+uint16_t rec_tail_check(const rec_tail_t* tail, const rec_hdr_t* header, const uint32_t checksum) {
+    uint16_t err = 0;
+    if (tail->_xmagic != ~header->_magic) err |= REC_TAIL_MAGIC_ERR_MASK;
+    if (tail->_serial != header->_serial) err |= REC_TAIL_SERIAL_ERR_MASK;
+    if (tail->_rid != header->_rid) err |= REC_TAIL_RID_ERR_MASK;
+    if (tail->_checksum != checksum) err |= REC_TAIL_CHECKSUM_ERR_MASK;
+    return err;
 }

Modified: qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/linearstore/journal/utils/rec_tail.h
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/linearstore/journal/utils/rec_tail.h?rev=1560634&r1=1560633&r2=1560634&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/linearstore/journal/utils/rec_tail.h (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/linearstore/journal/utils/rec_tail.h Thu Jan 23 11:01:02 2014
@@ -63,10 +63,15 @@ typedef struct rec_tail_t {
     uint64_t _rid;			/**< Record ID (rotating 64-bit counter) */
 } rec_tail_t;
 
+static const uint16_t REC_TAIL_MAGIC_ERR_MASK = 0x01;
+static const uint16_t REC_TAIL_SERIAL_ERR_MASK = 0x02;
+static const uint16_t REC_TAIL_RID_ERR_MASK = 0x04;
+static const uint16_t REC_TAIL_CHECKSUM_ERR_MASK = 0x08;
+
 void rec_tail_init(rec_tail_t* dest, const uint32_t xmagic, const uint32_t checksum, const uint64_t serial,
                    const uint64_t rid);
 void rec_tail_copy(rec_tail_t* dest, const rec_hdr_t* src, const uint32_t checksum);
-int rec_tail_check(const rec_tail_t* tail, const rec_hdr_t* header, const uint32_t checksum);
+uint16_t rec_tail_check(const rec_tail_t* tail, const rec_hdr_t* header, const uint32_t checksum);
 
 #pragma pack()
 

Modified: qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/messaging/amqp/ConnectionContext.cpp
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/messaging/amqp/ConnectionContext.cpp?rev=1560634&r1=1560633&r2=1560634&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/messaging/amqp/ConnectionContext.cpp (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/messaging/amqp/ConnectionContext.cpp Thu Jan 23 11:01:02 2014
@@ -125,6 +125,17 @@ bool ConnectionContext::isOpen() const
     return state == CONNECTED && pn_connection_state(connection) & (PN_LOCAL_ACTIVE | PN_REMOTE_ACTIVE);
 }
 
+void ConnectionContext::sync(boost::shared_ptr<SessionContext> ssn)
+{
+    qpid::sys::ScopedLock<qpid::sys::Monitor> l(lock);
+    //wait for outstanding sends to settle
+    while (!ssn->settled()) {
+        QPID_LOG(debug, "Waiting for sends to settle on sync()");
+        wait(ssn);//wait until message has been confirmed
+    }
+    checkClosed(ssn);
+}
+
 void ConnectionContext::endSession(boost::shared_ptr<SessionContext> ssn)
 {
     qpid::sys::ScopedLock<qpid::sys::Monitor> l(lock);
@@ -269,6 +280,23 @@ bool ConnectionContext::get(boost::share
     return false;
 }
 
+boost::shared_ptr<ReceiverContext> ConnectionContext::nextReceiver(boost::shared_ptr<SessionContext> ssn, qpid::messaging::Duration timeout)
+{
+    qpid::sys::AbsTime until(convert(timeout));
+    while (true) {
+        qpid::sys::ScopedLock<qpid::sys::Monitor> l(lock);
+        checkClosed(ssn);
+        boost::shared_ptr<ReceiverContext> r = ssn->nextReceiver();
+        if (r) {
+            return r;
+        } else if (until > qpid::sys::now()) {
+            waitUntil(ssn, until);
+        } else {
+            return boost::shared_ptr<ReceiverContext>();
+        }
+    }
+}
+
 void ConnectionContext::acknowledge(boost::shared_ptr<SessionContext> ssn, qpid::messaging::Message* message, bool cumulative)
 {
     qpid::sys::ScopedLock<qpid::sys::Monitor> l(lock);

Modified: qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/messaging/amqp/ConnectionContext.h
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/messaging/amqp/ConnectionContext.h?rev=1560634&r1=1560633&r2=1560634&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/messaging/amqp/ConnectionContext.h (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/messaging/amqp/ConnectionContext.h Thu Jan 23 11:01:02 2014
@@ -84,6 +84,8 @@ class ConnectionContext : public qpid::s
     bool get(boost::shared_ptr<SessionContext> ssn, boost::shared_ptr<ReceiverContext> lnk, qpid::messaging::Message& message, qpid::messaging::Duration timeout);
     void acknowledge(boost::shared_ptr<SessionContext> ssn, qpid::messaging::Message* message, bool cumulative);
     void nack(boost::shared_ptr<SessionContext> ssn, qpid::messaging::Message& message, bool reject);
+    void sync(boost::shared_ptr<SessionContext> ssn);
+    boost::shared_ptr<ReceiverContext> nextReceiver(boost::shared_ptr<SessionContext> ssn, qpid::messaging::Duration timeout);
 
     void setOption(const std::string& name, const qpid::types::Variant& value);
     std::string getAuthenticatedUsername();

Modified: qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/messaging/amqp/ReceiverContext.cpp
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/messaging/amqp/ReceiverContext.cpp?rev=1560634&r1=1560633&r2=1560634&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/messaging/amqp/ReceiverContext.cpp (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/messaging/amqp/ReceiverContext.cpp Thu Jan 23 11:01:02 2014
@@ -129,4 +129,9 @@ void ReceiverContext::reset(pn_session_t
     configure();
 }
 
+bool ReceiverContext::hasCurrent()
+{
+    return pn_link_current(receiver);
+}
+
 }}} // namespace qpid::messaging::amqp

Modified: qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/messaging/amqp/ReceiverContext.h
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/messaging/amqp/ReceiverContext.h?rev=1560634&r1=1560633&r2=1560634&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/messaging/amqp/ReceiverContext.h (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/messaging/amqp/ReceiverContext.h Thu Jan 23 11:01:02 2014
@@ -59,6 +59,7 @@ class ReceiverContext
     void configure();
     void verify();
     Address getAddress() const;
+    bool hasCurrent();
   private:
     friend class ConnectionContext;
     const std::string name;

Modified: qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/messaging/amqp/SessionContext.cpp
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/messaging/amqp/SessionContext.cpp?rev=1560634&r1=1560633&r2=1560634&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/messaging/amqp/SessionContext.cpp (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/messaging/amqp/SessionContext.cpp Thu Jan 23 11:01:02 2014
@@ -89,8 +89,14 @@ void SessionContext::removeSender(const 
     senders.erase(n);
 }
 
-boost::shared_ptr<ReceiverContext> SessionContext::nextReceiver(qpid::messaging::Duration /*timeout*/)
+boost::shared_ptr<ReceiverContext> SessionContext::nextReceiver()
 {
+    for (SessionContext::ReceiverMap::iterator i = receivers.begin(); i != receivers.end(); ++i) {
+        if (i->second->hasCurrent()) {
+            return i->second;
+        }
+    }
+
     return boost::shared_ptr<ReceiverContext>();
 }
 

Modified: qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/messaging/amqp/SessionContext.h
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/messaging/amqp/SessionContext.h?rev=1560634&r1=1560633&r2=1560634&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/messaging/amqp/SessionContext.h (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/messaging/amqp/SessionContext.h Thu Jan 23 11:01:02 2014
@@ -57,7 +57,7 @@ class SessionContext
     boost::shared_ptr<ReceiverContext> getReceiver(const std::string& name) const;
     void removeReceiver(const std::string&);
     void removeSender(const std::string&);
-    boost::shared_ptr<ReceiverContext> nextReceiver(qpid::messaging::Duration timeout);
+    boost::shared_ptr<ReceiverContext> nextReceiver();
     uint32_t getReceivable();
     uint32_t getUnsettledAcks();
     bool settled();

Modified: qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/messaging/amqp/SessionHandle.cpp
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/messaging/amqp/SessionHandle.cpp?rev=1560634&r1=1560633&r2=1560634&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/messaging/amqp/SessionHandle.cpp (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/messaging/amqp/SessionHandle.cpp Thu Jan 23 11:01:02 2014
@@ -75,9 +75,11 @@ void SessionHandle::close()
     connection->endSession(session);
 }
 
-void SessionHandle::sync(bool /*block*/)
+void SessionHandle::sync(bool block)
 {
-    
+    if (block) {
+        connection->sync(session);
+    }
 }
 
 qpid::messaging::Sender SessionHandle::createSender(const qpid::messaging::Address& address)
@@ -106,7 +108,7 @@ qpid::messaging::Receiver SessionHandle:
 
 bool SessionHandle::nextReceiver(Receiver& receiver, Duration timeout)
 {
-    boost::shared_ptr<ReceiverContext> r = session->nextReceiver(timeout);
+    boost::shared_ptr<ReceiverContext> r = connection->nextReceiver(session, timeout);
     if (r) {
         //TODO: cache handles in this case to avoid frequent allocation
         receiver = qpid::messaging::Receiver(new ReceiverHandle(connection, session, r));

Modified: qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/sys/MemoryMappedFile.h
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/sys/MemoryMappedFile.h?rev=1560634&r1=1560633&r2=1560634&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/sys/MemoryMappedFile.h (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/sys/MemoryMappedFile.h Thu Jan 23 11:01:02 2014
@@ -40,6 +40,10 @@ class MemoryMappedFile {
      */
     QPID_COMMON_EXTERN std::string open(const std::string& name, const std::string& directory);
     /**
+     * Closes and removes the file that can be mapped by region into memory
+     */
+    QPID_COMMON_EXTERN void close(const std::string& path);
+    /**
      * Returns the page size
      */
     QPID_COMMON_EXTERN size_t getPageSize();

Modified: qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/sys/posix/MemoryMappedFile.cpp
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/sys/posix/MemoryMappedFile.cpp?rev=1560634&r1=1560633&r2=1560634&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/sys/posix/MemoryMappedFile.cpp (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/sys/posix/MemoryMappedFile.cpp Thu Jan 23 11:01:02 2014
@@ -65,12 +65,17 @@ std::string MemoryMappedFile::open(const
 {
     std::string path = getFileName(name, directory);
 
-    int flags = O_CREAT | O_TRUNC | O_RDWR;
+    int flags = O_CREAT | O_EXCL | O_RDWR;
     int fd = ::open(path.c_str(), flags, S_IRUSR | S_IWUSR);
     if (fd == -1) throw qpid::Exception(QPID_MSG("Failed to open memory mapped file " << path << ": " << qpid::sys::strError(errno) << " [flags=" << flags << "]"));
     state->fd = fd;
     return path;
 }
+void MemoryMappedFile::close(const std::string& path)
+{
+    ::close(state->fd);
+    ::unlink(path.c_str());
+}
 size_t MemoryMappedFile::getPageSize()
 {
     return ::sysconf(_SC_PAGE_SIZE);

Modified: qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/sys/windows/MemoryMappedFile.cpp
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/sys/windows/MemoryMappedFile.cpp?rev=1560634&r1=1560633&r2=1560634&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/sys/windows/MemoryMappedFile.cpp (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/sys/windows/MemoryMappedFile.cpp Thu Jan 23 11:01:02 2014
@@ -31,6 +31,9 @@ std::string MemoryMappedFile::open(const
 {
     return std::string();
 }
+void MemoryMappedFile::close(const std::string& /*path*/)
+{
+}
 size_t MemoryMappedFile::getPageSize()
 {
     return 0;

Modified: qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/sys/windows/uuid.cpp
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/sys/windows/uuid.cpp?rev=1560634&r1=1560633&r2=1560634&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/sys/windows/uuid.cpp (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/sys/windows/uuid.cpp Thu Jan 23 11:01:02 2014
@@ -65,15 +65,6 @@ void printHex (const unsigned char *byte
 } // namespace
 
 
-void uuid_clear (uuid_t uu) {
-    // all zeros, no change between GUID and UUID
-    UuidCreateNil (reinterpret_cast<UUID*>(uu));
-}
-
-void uuid_copy (uuid_t dst, const uuid_t src) {
-    memcpy (dst, src, qpid::sys::UuidSize);
-}
-
 void uuid_generate (uuid_t out) {
     UUID guid;
     UuidCreate (&guid);
@@ -81,11 +72,6 @@ void uuid_generate (uuid_t out) {
     toUuid (&guid, out);
 }
 
-int uuid_is_null (const uuid_t uu) {
-    RPC_STATUS unused;
-    return UuidIsNil ((UUID*)uu, &unused);
-}
-
 int uuid_parse (const char *in, uuid_t uu) {
     UUID guid;
     if (UuidFromString ((unsigned char*)in, &guid) != RPC_S_OK)
@@ -104,34 +90,3 @@ void uuid_unparse (const uuid_t uu, char
     printHex (in+10, out+24, 6);
     out[36] = '\0';
 }
-
-namespace {
-
-typedef struct {
-    uint32_t time_low;
-    uint16_t time_mid;
-    uint16_t time_hi_and_version;
-    uint8_t  clock_seq_hi_and_reserved;
-    uint8_t  clock_seq_low;
-    uint8_t  node[6];
-} rfc_uuid_t;
-
-#undef RFC_CMP
-#define RFC_CMP(a, b) if (a != b) return (a < b) ? -1 : 1
-
-}
-
-int uuid_compare (const uuid_t a, const uuid_t b) {
-    // Could convert each to a GUID and then use UuidEqual(),
-    // but RFC test is straight forward
-    rfc_uuid_t* u1 = (rfc_uuid_t *) a;
-    rfc_uuid_t* u2 = (rfc_uuid_t *) b;
-    RFC_CMP (u1->time_low, u2->time_low);
-    RFC_CMP (u1->time_mid, u2->time_mid);
-    RFC_CMP (u1->time_hi_and_version, u2->time_hi_and_version);
-    RFC_CMP (u1->clock_seq_hi_and_reserved, u2->clock_seq_hi_and_reserved);
-    RFC_CMP (u1->clock_seq_low, u2->clock_seq_low);
-    for (int i = 0; i < 6; i++)
-        RFC_CMP (u1->node[i], u2->node[i]);
-    return 0;
-}

Modified: qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/sys/windows/uuid.h
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/sys/windows/uuid.h?rev=1560634&r1=1560633&r2=1560634&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/sys/windows/uuid.h (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/sys/windows/uuid.h Thu Jan 23 11:01:02 2014
@@ -28,12 +28,8 @@
 namespace qpid { namespace sys { const size_t UuidSize = 16; }}
 typedef uint8_t uuid_t[qpid::sys::UuidSize];
 
-QPID_TYPES_EXTERN void uuid_clear (uuid_t uu);
-QPID_TYPES_EXTERN void uuid_copy (uuid_t dst, const uuid_t src);
 QPID_TYPES_EXTERN void uuid_generate (uuid_t out);
-QPID_TYPES_EXTERN int  uuid_is_null (const uuid_t uu);          // Returns 1 if null, else 0
 QPID_TYPES_EXTERN int  uuid_parse (const char *in, uuid_t uu);  // Returns 0 on success, else -1
 QPID_TYPES_EXTERN void uuid_unparse (const uuid_t uu, char *out);
-QPID_TYPES_EXTERN int  uuid_compare (const uuid_t a, const uuid_t b);
 
 #endif  /*!_sys_windows_uuid_h*/

Modified: qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/types/Uuid.cpp
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/types/Uuid.cpp?rev=1560634&r1=1560633&r2=1560634&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/types/Uuid.cpp (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/cpp/src/qpid/types/Uuid.cpp Thu Jan 23 11:01:02 2014
@@ -71,14 +71,13 @@ void Uuid::generate()
 
 void Uuid::clear()
 {
-    uuid_clear(bytes);
+    ::memset(bytes, 0, Uuid::SIZE);
 }
 
-// Force int 0/!0 to false/true; avoids compile warnings.
 bool Uuid::isNull() const
 {
-    // This const cast is for Solaris which has non const arguments
-    return !!uuid_is_null(const_cast<uint8_t*>(bytes));
+    static Uuid nullUuid;
+    return *this == nullUuid;
 }
 
 Uuid::operator bool() const { return !isNull(); }
@@ -93,8 +92,7 @@ const unsigned char* Uuid::data() const
 
 bool operator==(const Uuid& a, const Uuid& b)
 {
-    // This const cast is for Solaris which has non const arguments
-    return uuid_compare(const_cast<uint8_t*>(a.bytes), const_cast<uint8_t*>(b.bytes)) == 0;
+    return ::memcmp(a.bytes, b.bytes, Uuid::SIZE) == 0;
 }
 
 bool operator!=(const Uuid& a, const Uuid& b)
@@ -104,26 +102,22 @@ bool operator!=(const Uuid& a, const Uui
 
 bool operator<(const Uuid& a, const Uuid& b)
 {
-    // This const cast is for Solaris which has non const arguments
-    return uuid_compare(const_cast<uint8_t*>(a.bytes), const_cast<uint8_t*>(b.bytes)) < 0;
+    return ::memcmp(a.bytes, b.bytes, Uuid::SIZE) < 0;
 }
 
 bool operator>(const Uuid& a, const Uuid& b)
 {
-    // This const cast is for Solaris which has non const arguments
-    return uuid_compare(const_cast<uint8_t*>(a.bytes), const_cast<uint8_t*>(b.bytes)) > 0;
+    return ::memcmp(a.bytes, b.bytes, Uuid::SIZE) > 0;
 }
 
 bool operator<=(const Uuid& a, const Uuid& b)
 {
-    // This const cast is for Solaris which has non const arguments
-    return uuid_compare(const_cast<uint8_t*>(a.bytes), const_cast<uint8_t*>(b.bytes)) <= 0;
+    return ::memcmp(a.bytes, b.bytes, Uuid::SIZE) <= 0;
 }
 
 bool operator>=(const Uuid& a, const Uuid& b)
 {
-    // This const cast is for Solaris which has non const arguments
-    return uuid_compare(const_cast<uint8_t*>(a.bytes), const_cast<uint8_t*>(b.bytes)) >= 0;
+    return ::memcmp(a.bytes, b.bytes, Uuid::SIZE) >= 0;
 }
 
 ostream& operator<<(ostream& out, Uuid uuid)

Propchange: qpid/branches/java-broker-bdb-ha/qpid/cpp/src/tests/
------------------------------------------------------------------------------
  Merged /qpid/trunk/qpid/cpp/src/tests:r1558037-1560619

Modified: qpid/branches/java-broker-bdb-ha/qpid/cpp/src/tests/CMakeLists.txt
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/cpp/src/tests/CMakeLists.txt?rev=1560634&r1=1560633&r2=1560634&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/cpp/src/tests/CMakeLists.txt (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/cpp/src/tests/CMakeLists.txt Thu Jan 23 11:01:02 2014
@@ -60,6 +60,18 @@ if (CMAKE_SYSTEM_NAME STREQUAL Windows)
 endif (CMAKE_SYSTEM_NAME STREQUAL Windows)
 
 # Some generally useful utilities that just happen to be built in the test area
+add_executable (qpid-receive qpid-receive.cpp Statistics.cpp ${platform_test_additions})
+target_link_libraries (qpid-receive qpidmessaging qpidtypes qpidcommon "${Boost_PROGRAM_OPTIONS_LIBRARY}")
+remember_location(qpid-receive)
+
+add_executable (qpid-send qpid-send.cpp Statistics.cpp ${platform_test_additions})
+target_link_libraries (qpid-send qpidmessaging qpidtypes qpidcommon "${Boost_PROGRAM_OPTIONS_LIBRARY}")
+remember_location(qpid-send)
+
+install (TARGETS
+         qpid-receive qpid-send
+         RUNTIME DESTINATION ${QPID_INSTALL_BINDIR})
+
 add_executable (qpid-perftest qpid-perftest.cpp ${platform_test_additions})
 target_link_libraries (qpid-perftest qpidclient qpidcommon "${Boost_PROGRAM_OPTIONS_LIBRARY}")
 remember_location(qpid-perftest)
@@ -73,17 +85,9 @@ target_link_libraries (qpid-client-test 
 remember_location(qpid-client-test)
 
 add_executable (qpid-ping qpid-ping.cpp ${platform_test_additions})
-target_link_libraries (qpid-ping qpidclient qpidcommon "${Boost_PROGRAM_OPTIONS_LIBRARY}")
+target_link_libraries (qpid-ping qpidclient qpidcommon qpidtypes "${Boost_PROGRAM_OPTIONS_LIBRARY}")
 remember_location(qpid-ping)
 
-add_executable (qpid-receive qpid-receive.cpp Statistics.cpp ${platform_test_additions})
-target_link_libraries (qpid-receive qpidmessaging qpidtypes qpidcommon "${Boost_PROGRAM_OPTIONS_LIBRARY}")
-remember_location(qpid-receive)
-
-add_executable (qpid-send qpid-send.cpp Statistics.cpp ${platform_test_additions})
-target_link_libraries (qpid-send qpidmessaging qpidtypes qpidcommon "${Boost_PROGRAM_OPTIONS_LIBRARY}")
-remember_location(qpid-send)
-
 add_executable (qpid-topic-listener qpid-topic-listener.cpp ${platform_test_additions})
 target_link_libraries (qpid-topic-listener qpidclient qpidcommon "${Boost_PROGRAM_OPTIONS_LIBRARY}")
 remember_location(qpid-topic-listener)
@@ -102,14 +106,14 @@ target_link_libraries (sender qpidmessag
 remember_location(sender)
 
 add_executable (qpid-txtest qpid-txtest.cpp ${platform_test_additions})
-target_link_libraries (qpid-txtest qpidclient qpidcommon "${Boost_PROGRAM_OPTIONS_LIBRARY}")
+target_link_libraries (qpid-txtest qpidclient qpidcommon qpidtypes "${Boost_PROGRAM_OPTIONS_LIBRARY}")
 #qpid_txtest_SOURCES=qpid-txtest.cpp  TestOptions.h ConnectionOptions.h
 remember_location(qpid-txtest)
 
 install (TARGETS
          qpid-perftest qpid-latency-test qpid-client-test
          qpid-ping
-         qpid-receive qpid-send qpid-topic-listener qpid-topic-publisher receiver sender
+         qpid-topic-listener qpid-topic-publisher receiver sender
          qpid-txtest
          RUNTIME DESTINATION ${QPID_INSTALL_TESTDIR})
 

Modified: qpid/branches/java-broker-bdb-ha/qpid/cpp/src/tests/Uuid.cpp
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/cpp/src/tests/Uuid.cpp?rev=1560634&r1=1560633&r2=1560634&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/cpp/src/tests/Uuid.cpp (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/cpp/src/tests/Uuid.cpp Thu Jan 23 11:01:02 2014
@@ -24,6 +24,8 @@
 
 #include <set>
 
+#include <boost/array.hpp>
+
 namespace qpid {
 namespace tests {
 
@@ -51,17 +53,12 @@ boost::array<uint8_t, 16>  sample =  {{0
 const string sampleStr("1b4e28ba-2fa1-11d2-883f-b9a761bde3fb");
 const string zeroStr("00000000-0000-0000-0000-000000000000");
 
-QPID_AUTO_TEST_CASE(testUuidStr) {
-    Uuid uuid(sampleStr);
-    BOOST_CHECK(uuid == sample);
-}
-
 QPID_AUTO_TEST_CASE(testUuidIstream) {
     Uuid uuid;
     istringstream in(sampleStr);
     in >> uuid;
     BOOST_CHECK(!in.fail());
-    BOOST_CHECK(uuid == sample);
+    BOOST_CHECK(::memcmp(uuid.data(), sample.data(), uuid.size())==0);
 
     istringstream is(zeroStr);
     Uuid zero;
@@ -105,7 +102,7 @@ QPID_AUTO_TEST_CASE(testUuidEncodeDecode
     Uuid decoded;
     decoded.decode(rbuf);
     BOOST_CHECK_EQUAL(string(sample.begin(), sample.end()),
-                      string(decoded.begin(), decoded.end()));
+                      string(decoded.data(), decoded.data()+decoded.size()));
 }
 
 QPID_AUTO_TEST_CASE(testTypesUuid)

Modified: qpid/branches/java-broker-bdb-ha/qpid/doc/book/src/cpp-broker/Active-Passive-Cluster.xml
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/doc/book/src/cpp-broker/Active-Passive-Cluster.xml?rev=1560634&r1=1560633&r2=1560634&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/doc/book/src/cpp-broker/Active-Passive-Cluster.xml (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/doc/book/src/cpp-broker/Active-Passive-Cluster.xml Thu Jan 23 11:01:02 2014
@@ -310,10 +310,8 @@ ssl_addr = "ssl:" host [":" port]'
 	      <para><literal>ha-mechanism <replaceable>MECHANISM</replaceable></literal></para>
 	    </entry>
 	    <entry>
-	      Authentication settings used by HA brokers to connect to each other.
-	      If you are using authorization
-	      (<xref linkend="sect-Messaging_User_Guide-Security-Authorization"/>)
-	      then this user must have all permissions.
+	      Authentication settings used by HA brokers to connect to each other,
+	      see <xref linkend="ha-security"/>
 	    </entry>
 	  </row>
 	  <row>
@@ -791,49 +789,52 @@ NOTE: fencing is not shown, you must con
   </section>
 
   <section id="ha-security">
-    <title>Security.</title>
+    <title>Security and Access Control.</title>
     <para>
-      You can secure your cluster using the authentication and authorization features
-      described in <xref linkend="chap-Messaging_User_Guide-Security"/>.
+      You can secure your cluster using the authentication and authorization
+      features described in <xref linkend="chap-Messaging_User_Guide-Security"/>.
+      HA brokers use the credentials set by the following options:
     </para>
-    <para>
-      Backup brokers connect to the primary broker and subscribe for management
-      events and queue contents. You can specify the identity used to connect
-      to the primary with the following options:
-    </para>
-    <table frame="all" id="ha-broker-security-options">
-      <title>Security options for High Availability Messaging Cluster</title>
+    <table frame="all" id="ha-security-options">
+      <title>HA Security Options</title>
       <tgroup align="left" cols="2" colsep="1" rowsep="1">
-	<colspec colname="c1" colwidth="1*"/>
-	<colspec colname="c2" colwidth="3*"/>
+	<colspec colname="c1"/>
+	<colspec colname="c2"/>
 	<thead>
 	  <row>
 	    <entry align="center" nameend="c2" namest="c1">
-	      Security options for High Availability Messaging Cluster
+	      HA Security Options
 	    </entry>
 	  </row>
 	</thead>
 	<tbody>
 	  <row>
-	    <entry>
-	      <para><literal>ha-username <replaceable>USER</replaceable></literal></para>
-	      <para><literal>ha-password <replaceable>PASS</replaceable></literal></para>
-	      <para><literal>ha-mechanism <replaceable>MECH</replaceable></literal></para>
-	    </entry>
-	    <entry>
-	      Authentication settings used by HA brokers to connect to each other.
-	      If you are using authorization
-	      (<xref linkend="sect-Messaging_User_Guide-Security-Authorization"/>)
-	      then this user must have all permissions.
-	    </entry>
+	    <entry><para><literal>ha-username</literal> <replaceable>USER</replaceable></para></entry>
+	    <entry><para>User name for HA brokers.</para></entry>
+	  </row>
+	  <row>
+	    <entry><para><literal>ha-password</literal> <replaceable>PASS</replaceable></para></entry>
+	    <entry><para>Password for HA brokers.</para></entry>
+	  </row>
+	  <row>
+	    <entry><para><literal>ha-mechanism</literal> <replaceable>MECHANISM</replaceable></para></entry>
+	    <entry><para>Mechanism for HA brokers.</para></entry>
 	  </row>
 	</tbody>
       </tgroup>
     </table>
     <para>
-      This identity is also used to authorize actions taken on the backup broker to replicate
-      from the primary, for example to create queues or exchanges.
+      This identity is used to authorize federation links from backup to
+      primary.  It is also used to authorize actions on the backup to replicate
+      primary state, for example creating queues and exchanges.
     </para>
+    <para>
+      When using an Access Control List the following ACL rule is required
+      when <literal>ha-username</literal>=<replaceable>USER</replaceable>
+    </para>
+    <programlisting>
+      acl allow <replaceable>USER</replaceable>@QPID all all
+    </programlisting>
   </section>
 
   <section id="ha-other-rm">

Modified: qpid/branches/java-broker-bdb-ha/qpid/doc/book/src/java-broker/Java-Broker-Concepts-Exchanges.xml
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/doc/book/src/java-broker/Java-Broker-Concepts-Exchanges.xml?rev=1560634&r1=1560633&r2=1560634&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/doc/book/src/java-broker/Java-Broker-Concepts-Exchanges.xml (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/doc/book/src/java-broker/Java-Broker-Concepts-Exchanges.xml Thu Jan 23 11:01:02 2014
@@ -181,7 +181,7 @@
    <itemizedlist>
      <listitem><literal>all</literal> implies that all the other pairs must match the headers property of a message for that message to be routed
       (i.e. an AND match)</listitem>
-     <listitem>any<literal></literal> implies that the message should be routed if any of the fields in the headers property match one of the
+     <listitem><literal>any</literal> implies that the message should be routed if any of the fields in the headers property match one of the
       fields in the arguments table (i.e. an OR match)</listitem>
    </itemizedlist>
    <para>A field in the bind arguments matches a field in the message if either the field in the bind arguments has no value and a field of the

Modified: qpid/branches/java-broker-bdb-ha/qpid/doc/book/src/java-broker/Java-Broker-High-Availability.xml
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/doc/book/src/java-broker/Java-Broker-High-Availability.xml?rev=1560634&r1=1560633&r2=1560634&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/doc/book/src/java-broker/Java-Broker-High-Availability.xml (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/doc/book/src/java-broker/Java-Broker-High-Availability.xml Thu Jan 23 11:01:02 2014
@@ -475,8 +475,7 @@
   <section id="Java-Broker-High-Availability-ClientFailover">
     <title>Client failover configuration</title>
     <para>The details about format of Qpid connection URLs can be found at section
-        <ulink url="../../Programming-In-Apache-Qpid/html/QpidJNDI.html">Connection URLs</ulink>
-        of book <ulink url="../../Programming-In-Apache-Qpid/html/">Programming In Apache Qpid</ulink>.</para>
+        <ulink url="&qpidjmsdocClientConectionUrl;">Connection URLs</ulink> within the client documentation.</para>
     <para>The failover policy option in the connection URL for the HA Cluster should be set to <emphasis>roundrobin</emphasis>.
       The Master broker should be put into a first place in <emphasis>brokerlist</emphasis> URL option.
       The recommended value for <emphasis>connectdelay</emphasis> option in broker URL should be set to
@@ -740,9 +739,9 @@ Current state of node: Node-5001 from gr
     <para><emphasis>backup.sh</emphasis> script invokes <classname>org.apache.qpid.server.store.berkeleydb.BDBBackup</classname> to do the job.</para>
     <para>You can also run this class from command line like in an example below:</para>
     <example><title>Performing store backup by using <classname>BDBBackup</classname> class directly</title><command>
-        java -cp qpid-bdbstore-0.18.jar org.apache.qpid.server.store.berkeleydb.BDBBackup -fromdir path/to/store/folder -todir path/to/backup/foldeAr</command>
+        java -cp qpid-bdbstore-&qpidCurrentRelease;.jar org.apache.qpid.server.store.berkeleydb.BDBBackup -fromdir path/to/store/folder -todir path/to/backup/folder</command>
     </example>
-    <para>In the example above BDBBackup utility is called from qpid-bdbstore-0.18.jar to backup the store at <emphasis>path/to/store/folder</emphasis> and copy store logs into <emphasis>path/to/backup/folder</emphasis>.</para>
+    <para>In the example above BDBBackup utility is called from qpid-bdbstore-&qpidCurrentRelease;.jar to backup the store at <emphasis>path/to/store/folder</emphasis> and copy store logs into <emphasis>path/to/backup/folder</emphasis>.</para>
     <para>Linux and Unix users can take advantage of <emphasis>backup.sh</emphasis> bash script by running this script in a similar way.</para>
     <example><title>Performing store backup by using <classname>backup.sh</classname> bash script</title>
         <command>backup.sh -fromdir path/to/store/folder -todir path/to/backup/folder</command>

Modified: qpid/branches/java-broker-bdb-ha/qpid/doc/book/src/java-broker/Java-Broker-Queues-OtherTypes.xml
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/doc/book/src/java-broker/Java-Broker-Queues-OtherTypes.xml?rev=1560634&r1=1560633&r2=1560634&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/doc/book/src/java-broker/Java-Broker-Queues-OtherTypes.xml (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/doc/book/src/java-broker/Java-Broker-Queues-OtherTypes.xml Thu Jan 23 11:01:02 2014
@@ -459,7 +459,7 @@ topicExchange.createNewBinding("queue", 
 -Dmax_prefetch=1
 </programlisting>
     <para> The prefetch can be also be adjusted on a per connection basis by adding a
-      <varname>maxprefetch</varname> value to the <ulink url="../../Programming-In-Apache-Qpid/html/QpidJNDI.html#section-jms-connection-url">Connection URLs</ulink>
+      <varname>maxprefetch</varname> value to the <ulink url="&qpidjmsdocClientConectionUrl;">Connection URLs</ulink>
     </para>
     <programlisting>
 amqp://guest:guest@client1/development?maxprefetch='1'&amp;brokerlist='tcp://localhost:5672'

Modified: qpid/branches/java-broker-bdb-ha/qpid/doc/book/src/java-broker/commonEntities.xml
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/doc/book/src/java-broker/commonEntities.xml?rev=1560634&r1=1560633&r2=1560634&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/doc/book/src/java-broker/commonEntities.xml (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/doc/book/src/java-broker/commonEntities.xml Thu Jan 23 11:01:02 2014
@@ -20,7 +20,6 @@
 -->
 
 <!ENTITY qpidDownloadUrl "http://qpid.apache.org/download.html">
-<!ENTITY qpidProgrammingBook "../../Programming-In-Apache-Qpid/html/">
 <!ENTITY qpidCppBook "../../AMQP-Messaging-Broker-CPP-Book/html/">
 
 <!ENTITY qpidCurrentRelease "0.27">
@@ -30,6 +29,9 @@
 <!ENTITY unixBrokerDownloadFileName "qpid-java-broker-&qpidCurrentRelease;.tar.gz">
 <!ENTITY unixExtractedBrokerDirName "qpid-broker-&qpidCurrentRelease;">
 
+<!-- Client doc links -->
+<!ENTITY qpidjmsdocClientConectionUrl "../../Programming-In-Apache-Qpid/html/QpidJNDI.html#section-jms-connection-url">
+
 <!-- Oracle javadoc -->
 <!ENTITY oracleJdkDocUrl "http://docs.oracle.com/javase/6/docs/api/">
 <!ENTITY oracleJeeDocUrl "http://docs.oracle.com/javaee/6/api/">

Modified: qpid/branches/java-broker-bdb-ha/qpid/doc/book/src/jms-client-0-8/commonEntities.xml
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/doc/book/src/jms-client-0-8/commonEntities.xml?rev=1560634&r1=1560633&r2=1560634&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/doc/book/src/jms-client-0-8/commonEntities.xml (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/doc/book/src/jms-client-0-8/commonEntities.xml Thu Jan 23 11:01:02 2014
@@ -19,7 +19,7 @@
 
 -->
 
-<!ENTITY qpidVersion "0.24">
+<!ENTITY qpidVersion "0.27">
 <!ENTITY qpidDownloadUrlDesc "the Apache Qpid project web site">
 <!ENTITY qpidDownloadUrl "http://qpid.apache.org/download.html">
 

Propchange: qpid/branches/java-broker-bdb-ha/qpid/java/
------------------------------------------------------------------------------
  Merged /qpid/trunk/qpid/java:r1558037-1560619

Modified: qpid/branches/java-broker-bdb-ha/qpid/java/bdbstore/jmx/pom.xml
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/java/bdbstore/jmx/pom.xml?rev=1560634&r1=1560633&r2=1560634&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/java/bdbstore/jmx/pom.xml (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/java/bdbstore/jmx/pom.xml Thu Jan 23 11:01:02 2014
@@ -49,6 +49,13 @@
     </dependency>
 
     <dependency>
+      <groupId>log4j</groupId>
+      <artifactId>log4j</artifactId>
+      <version>${log4j-version}</version>
+      <scope>compile</scope>
+    </dependency>
+
+    <dependency>
       <groupId>com.sleepycat</groupId>
       <artifactId>je</artifactId>
       <version>5.0.84</version>

Modified: qpid/branches/java-broker-bdb-ha/qpid/java/bdbstore/pom.xml
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/java/bdbstore/pom.xml?rev=1560634&r1=1560633&r2=1560634&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/java/bdbstore/pom.xml (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/java/bdbstore/pom.xml Thu Jan 23 11:01:02 2014
@@ -41,6 +41,13 @@
     </dependency>
 
     <dependency>
+      <groupId>log4j</groupId>
+      <artifactId>log4j</artifactId>
+      <version>${log4j-version}</version>
+      <scope>compile</scope>
+    </dependency>
+
+    <dependency>
       <groupId>com.sleepycat</groupId>
       <artifactId>je</artifactId>
       <version>5.0.97</version>

Modified: qpid/branches/java-broker-bdb-ha/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/upgrade/UpgradeFrom4To5.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/upgrade/UpgradeFrom4To5.java?rev=1560634&r1=1560633&r2=1560634&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/upgrade/UpgradeFrom4To5.java (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/upgrade/UpgradeFrom4To5.java Thu Jan 23 11:01:02 2014
@@ -663,9 +663,8 @@ public class UpgradeFrom4To5 extends Abs
             {
                 final MessagePublishInfo publishBody = readMessagePublishInfo(input);
                 final ContentHeaderBody contentHeaderBody = readContentHeaderBody(input);
-                final int contentChunkCount = input.readInt();
 
-                return new MessageMetaData(publishBody, contentHeaderBody, contentChunkCount);
+                return new MessageMetaData(publishBody, contentHeaderBody);
             }
             catch (Exception e)
             {

Modified: qpid/branches/java-broker-bdb-ha/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/BDBStoreUpgradeTestPreparer.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/BDBStoreUpgradeTestPreparer.java?rev=1560634&r1=1560633&r2=1560634&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/BDBStoreUpgradeTestPreparer.java (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/BDBStoreUpgradeTestPreparer.java Thu Jan 23 11:01:02 2014
@@ -44,6 +44,7 @@ import javax.management.remote.JMXConnec
 import javax.management.remote.JMXConnectorFactory;
 import javax.management.remote.JMXServiceURL;
 
+import org.apache.log4j.Logger;
 import org.apache.qpid.client.AMQConnectionFactory;
 import org.apache.qpid.client.AMQDestination;
 import org.apache.qpid.client.AMQSession;
@@ -64,6 +65,8 @@ import org.apache.qpid.url.URLSyntaxExce
  */
 public class BDBStoreUpgradeTestPreparer
 {
+    private static final Logger _logger = Logger.getLogger(BDBStoreUpgradeTestPreparer.class);
+
     public static final String TOPIC_NAME="myUpgradeTopic";
     public static final String SUB_NAME="myDurSubName";
     public static final String SELECTOR_SUB_NAME="mySelectorDurSubName";
@@ -131,7 +134,7 @@ public class BDBStoreUpgradeTestPreparer
         {
             public void onException(JMSException e)
             {
-                e.printStackTrace();
+                _logger.error("Error setting exception listener for connection", e);
             }
         });
         // Create a session on the connection, transacted to confirm delivery
@@ -225,7 +228,7 @@ public class BDBStoreUpgradeTestPreparer
         {
             public void onException(JMSException e)
             {
-                e.printStackTrace();
+                _logger.error("Error setting exception listener for connection", e);
             }
         });
         // Create a session on the connection, transacted to confirm delivery
@@ -270,7 +273,7 @@ public class BDBStoreUpgradeTestPreparer
         {
             public void onException(JMSException e)
             {
-                e.printStackTrace();
+                _logger.error("Error setting exception listener for connection", e);
             }
         });
         // Create a session on the connection, transacted to confirm delivery

Modified: qpid/branches/java-broker-bdb-ha/qpid/java/bdbstore/systests/pom.xml
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/java/bdbstore/systests/pom.xml?rev=1560634&r1=1560633&r2=1560634&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/java/bdbstore/systests/pom.xml (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/java/bdbstore/systests/pom.xml Thu Jan 23 11:01:02 2014
@@ -27,10 +27,10 @@
   <artifactId>qpid-bdbstore-systests</artifactId>
 
   <properties>
-    <broker.home.dir>target/qpid-broker/${project.version}</broker.home.dir>
+    <broker.home.dir>target${file.separator}qpid-broker${file.separator}${project.version}</broker.home.dir>
     <!-- test properties -->
-    <qpid.home>${basedir}/${broker.home.dir}</qpid.home>
-    <qpid.home.qbtc.output>${qpid.home}/qbtc-output</qpid.home.qbtc.output>
+    <qpid.home>${basedir}${file.separator}${broker.home.dir}</qpid.home>
+    <qpid.home.qbtc.output>${qpid.home}${file.separator}qbtc-output</qpid.home.qbtc.output>
   </properties>
 
   <dependencies>
@@ -56,6 +56,20 @@
     </dependency>
 
     <dependency>
+      <groupId>log4j</groupId>
+      <artifactId>log4j</artifactId>
+      <version>${log4j-version}</version>
+      <scope>compile</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+      <version>${slf4j-version}</version>
+      <scope>compile</scope>
+    </dependency>
+
+    <dependency>
       <groupId>org.apache.geronimo.specs</groupId>
       <artifactId>geronimo-jms_1.1_spec</artifactId>
       <version>1.0</version>
@@ -109,6 +123,9 @@
           <!-- Skip the default test phase, bind to the
                integration-test phase below instead -->
           <skip>true</skip>
+          <systemPropertyVariables>
+            <log4j.configuration.file>${project.basedir}${file.separator}..${file.separator}..${file.separator}test-profiles${file.separator}log4j-test.xml</log4j.configuration.file>
+          </systemPropertyVariables>
         </configuration>
         <executions>
           <execution>

Modified: qpid/branches/java-broker-bdb-ha/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBBackupTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBBackupTest.java?rev=1560634&r1=1560633&r2=1560634&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBBackupTest.java (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBBackupTest.java Thu Jan 23 11:01:02 2014
@@ -34,6 +34,7 @@ import org.apache.log4j.Logger;
 import org.apache.qpid.test.utils.Piper;
 import org.apache.qpid.test.utils.QpidBrokerTestCase;
 import org.apache.qpid.util.FileUtils;
+import org.apache.qpid.util.SystemUtils;
 
 /**
  * Tests the BDB backup script can successfully perform a backup and that
@@ -134,7 +135,7 @@ public class BDBBackupTest extends QpidB
 
     private void invokeBdbBackup(final File backupFromDir, final File backupToDir) throws Exception
     {
-        if (IS_OS_WINDOWS)
+        if (SystemUtils.isWindows())
         {
             BDBBackup.main(new String[]{"-todir", backupToDir.getAbsolutePath(), "-fromdir", backupFromDir.getAbsolutePath()});
         }

Modified: qpid/branches/java-broker-bdb-ha/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBMessageStoreTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBMessageStoreTest.java?rev=1560634&r1=1560633&r2=1560634&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBMessageStoreTest.java (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBMessageStoreTest.java Thu Jan 23 11:01:02 2014
@@ -100,7 +100,7 @@ public class BDBMessageStoreTest extends
 
         ContentHeaderBody chb_0_8 = createContentHeaderBody_0_8(props_0_8, bodySize);
 
-        MessageMetaData messageMetaData_0_8 = new MessageMetaData(pubInfoBody_0_8, chb_0_8, 0);
+        MessageMetaData messageMetaData_0_8 = new MessageMetaData(pubInfoBody_0_8, chb_0_8);
         StoredMessage<MessageMetaData> storedMessage_0_8 = bdbStore.addMessage(messageMetaData_0_8);
 
         long origArrivalTime_0_8 = messageMetaData_0_8.getArrivalTime();
@@ -156,7 +156,7 @@ public class BDBMessageStoreTest extends
         assertEquals("ContentHeader weight has changed", chb_0_8.getWeight(), returnedHeaderBody_0_8.getWeight());
         assertEquals("ContentHeader bodySize has changed", chb_0_8.getBodySize(), returnedHeaderBody_0_8.getBodySize());
 
-        BasicContentHeaderProperties returnedProperties_0_8 = (BasicContentHeaderProperties) returnedHeaderBody_0_8.getProperties();
+        BasicContentHeaderProperties returnedProperties_0_8 =   returnedHeaderBody_0_8.getProperties();
         assertEquals("Property ContentType has changed", props_0_8.getContentTypeAsString(), returnedProperties_0_8.getContentTypeAsString());
         assertEquals("Property MessageID has changed", props_0_8.getMessageIdAsString(), returnedProperties_0_8.getMessageIdAsString());
 
@@ -401,7 +401,7 @@ public class BDBMessageStoreTest extends
 
         ContentHeaderBody chb_0_8 = createContentHeaderBody_0_8(props_0_8, bodySize);
 
-        MessageMetaData messageMetaData_0_8 = new MessageMetaData(pubInfoBody_0_8, chb_0_8, 0);
+        MessageMetaData messageMetaData_0_8 = new MessageMetaData(pubInfoBody_0_8, chb_0_8);
         StoredMessage<MessageMetaData> storedMessage_0_8 = store.addMessage(messageMetaData_0_8);
 
         storedMessage_0_8.addContent(0, chunk1);
@@ -617,5 +617,11 @@ public class BDBMessageStoreTest extends
         {
             return null;
         }
+
+        @Override
+        public Object getConnectionReference()
+        {
+            return null;
+        }
     }
 }

Propchange: qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/
------------------------------------------------------------------------------
  Merged /qpid/trunk/qpid/java/broker-core:r1558037-1560619

Modified: qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/pom.xml
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/pom.xml?rev=1560634&r1=1560633&r2=1560634&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/pom.xml (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/pom.xml Thu Jan 23 11:01:02 2014
@@ -47,21 +47,21 @@
 	<dependency>
 	  <groupId>log4j</groupId>
 	  <artifactId>log4j</artifactId>
-	  <version>1.2.16</version>
+	  <version>${log4j-version}</version>
 	  <scope>compile</scope>
 	</dependency>
 
 	<dependency>
 	  <groupId>org.slf4j</groupId>
 	  <artifactId>slf4j-api</artifactId>
-	  <version>1.6.4</version>
+	  <version>${slf4j-version}</version>
 	  <scope>compile</scope>
 	</dependency>
 
     <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-log4j12</artifactId>
-      <version>1.6.4</version>
+      <version>${slf4j-version}</version>
       <scope>compile</scope>
     </dependency>
 

Modified: qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/AbstractExchange.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/AbstractExchange.java?rev=1560634&r1=1560633&r2=1560634&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/AbstractExchange.java (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/AbstractExchange.java Thu Jan 23 11:01:02 2014
@@ -32,7 +32,8 @@ import org.apache.qpid.server.logging.me
 import org.apache.qpid.server.logging.messages.ExchangeMessages;
 import org.apache.qpid.server.logging.subjects.BindingLogSubject;
 import org.apache.qpid.server.logging.subjects.ExchangeLogSubject;
-import org.apache.qpid.server.message.InboundMessage;
+import org.apache.qpid.server.message.InstanceProperties;
+import org.apache.qpid.server.message.ServerMessage;
 import org.apache.qpid.server.model.UUIDGenerator;
 import org.apache.qpid.server.plugin.ExchangeType;
 import org.apache.qpid.server.queue.AMQQueue;
@@ -373,11 +374,13 @@ public abstract class AbstractExchange i
         return getBindings().size();
     }
 
-    public final List<? extends BaseQueue> route(final InboundMessage message)
+    @Override
+    public final List<? extends BaseQueue> route(final ServerMessage message,
+                                                 final InstanceProperties instanceProperties)
     {
         _receivedMessageCount.incrementAndGet();
         _receivedMessageSize.addAndGet(message.getSize());
-        List<? extends BaseQueue> queues = doRoute(message);
+        List<? extends BaseQueue> queues = doRoute(message, instanceProperties);
         List<? extends BaseQueue> allQueues = queues;
 
         boolean deletedQueues = false;
@@ -413,7 +416,8 @@ public abstract class AbstractExchange i
         return queues;
     }
 
-    protected abstract List<? extends BaseQueue> doRoute(final InboundMessage message);
+    protected abstract List<? extends BaseQueue> doRoute(final ServerMessage message,
+                                                         final InstanceProperties instanceProperties);
 
     public long getMsgReceives()
     {

Modified: qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/DefaultExchange.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/DefaultExchange.java?rev=1560634&r1=1560633&r2=1560634&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/DefaultExchange.java (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/DefaultExchange.java Thu Jan 23 11:01:02 2014
@@ -35,7 +35,8 @@ import org.apache.qpid.server.binding.Bi
 import org.apache.qpid.server.logging.LogSubject;
 import org.apache.qpid.server.logging.actors.CurrentActor;
 import org.apache.qpid.server.logging.messages.ExchangeMessages;
-import org.apache.qpid.server.message.InboundMessage;
+import org.apache.qpid.server.message.InstanceProperties;
+import org.apache.qpid.server.message.ServerMessage;
 import org.apache.qpid.server.model.UUIDGenerator;
 import org.apache.qpid.server.plugin.ExchangeType;
 import org.apache.qpid.server.queue.AMQQueue;
@@ -203,7 +204,7 @@ public class DefaultExchange implements 
     }
 
     @Override
-    public List<AMQQueue> route(InboundMessage message)
+    public List<AMQQueue> route(ServerMessage message, final InstanceProperties instanceProperties)
     {
         AMQQueue q = _virtualHost.getQueue(message.getRoutingKey());
         if(q == null)

Modified: qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/DirectExchange.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/DirectExchange.java?rev=1560634&r1=1560633&r2=1560634&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/DirectExchange.java (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/DirectExchange.java Thu Jan 23 11:01:02 2014
@@ -27,8 +27,11 @@ import java.util.Set;
 import org.apache.log4j.Logger;
 import org.apache.qpid.AMQInvalidArgumentException;
 import org.apache.qpid.server.binding.Binding;
+import org.apache.qpid.server.filter.FilterSupport;
+import org.apache.qpid.server.filter.Filterable;
 import org.apache.qpid.server.filter.MessageFilter;
-import org.apache.qpid.server.message.InboundMessage;
+import org.apache.qpid.server.message.InstanceProperties;
+import org.apache.qpid.server.message.ServerMessage;
 import org.apache.qpid.server.plugin.ExchangeType;
 import org.apache.qpid.server.queue.AMQQueue;
 import org.apache.qpid.server.queue.BaseQueue;
@@ -130,7 +133,8 @@ public class DirectExchange extends Abst
         super(TYPE);
     }
 
-    public List<? extends BaseQueue> doRoute(InboundMessage payload)
+    @Override
+    public List<? extends BaseQueue> doRoute(ServerMessage payload, final InstanceProperties instanceProperties)
     {
 
         final String routingKey = payload.getRoutingKey();
@@ -151,7 +155,7 @@ public class DirectExchange extends Abst
                     if(!queuesSet.contains(entry.getKey()))
                     {
                         MessageFilter filter = entry.getValue();
-                        if(filter.matches(payload))
+                        if(filter.matches(Filterable.Factory.newInstance(payload, instanceProperties)))
                         {
                             queuesSet.add(entry.getKey());
                         }

Modified: qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/Exchange.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/Exchange.java?rev=1560634&r1=1560633&r2=1560634&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/Exchange.java (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/Exchange.java Thu Jan 23 11:01:02 2014
@@ -24,7 +24,8 @@ import org.apache.qpid.AMQException;
 import org.apache.qpid.AMQInternalException;
 import org.apache.qpid.AMQSecurityException;
 import org.apache.qpid.server.binding.Binding;
-import org.apache.qpid.server.message.InboundMessage;
+import org.apache.qpid.server.message.InstanceProperties;
+import org.apache.qpid.server.message.ServerMessage;
 import org.apache.qpid.server.plugin.ExchangeType;
 import org.apache.qpid.server.queue.AMQQueue;
 import org.apache.qpid.server.queue.BaseQueue;
@@ -98,7 +99,7 @@ public interface Exchange extends Exchan
      *
      * @return list of queues to which to route the message.
      */
-    List<? extends BaseQueue> route(InboundMessage message);
+    List<? extends BaseQueue> route(ServerMessage message, final InstanceProperties instanceProperties);
 
 
     /**

Modified: qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/FanoutExchange.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/FanoutExchange.java?rev=1560634&r1=1560633&r2=1560634&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/FanoutExchange.java (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/FanoutExchange.java Thu Jan 23 11:01:02 2014
@@ -29,8 +29,11 @@ import org.apache.log4j.Logger;
 
 import org.apache.qpid.AMQInvalidArgumentException;
 import org.apache.qpid.server.binding.Binding;
+import org.apache.qpid.server.filter.FilterSupport;
+import org.apache.qpid.server.filter.Filterable;
 import org.apache.qpid.server.filter.MessageFilter;
-import org.apache.qpid.server.message.InboundMessage;
+import org.apache.qpid.server.message.InstanceProperties;
+import org.apache.qpid.server.message.ServerMessage;
 import org.apache.qpid.server.plugin.ExchangeType;
 import org.apache.qpid.server.queue.AMQQueue;
 import org.apache.qpid.server.queue.BaseQueue;
@@ -66,7 +69,8 @@ public class FanoutExchange extends Abst
         super(TYPE);
     }
 
-    public ArrayList<BaseQueue> doRoute(InboundMessage payload)
+    @Override
+    public ArrayList<BaseQueue> doRoute(ServerMessage payload, final InstanceProperties instanceProperties)
     {
 
         for(Binding b : getBindings())
@@ -87,7 +91,7 @@ public class FanoutExchange extends Abst
                 {
                     for(MessageFilter filter : bindingMessageFilterMap.values())
                     {
-                        if(filter.matches(payload))
+                        if(filter.matches(Filterable.Factory.newInstance(payload,instanceProperties)))
                         {
                             result.add(q);
                             break;

Modified: qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/HeadersBinding.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/HeadersBinding.java?rev=1560634&r1=1560633&r2=1560634&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/HeadersBinding.java (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/HeadersBinding.java Thu Jan 23 11:01:02 2014
@@ -24,6 +24,7 @@ import org.apache.log4j.Logger;
 
 import org.apache.qpid.AMQInvalidArgumentException;
 import org.apache.qpid.server.binding.Binding;
+import org.apache.qpid.server.filter.FilterSupport;
 import org.apache.qpid.server.filter.MessageFilter;
 import org.apache.qpid.server.message.AMQMessageHeader;
 
@@ -31,8 +32,7 @@ import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
-import org.apache.qpid.server.message.InboundMessage;
-import org.apache.qpid.server.queue.Filterable;
+import org.apache.qpid.server.filter.Filterable;
 
 /**
  * Defines binding and matching based on a set of headers.
@@ -135,7 +135,7 @@ class HeadersBinding
         }
     }
 
-    public boolean matches(InboundMessage message)
+    public boolean matches(Filterable message)
     {
         return matches(message.getMessageHeader()) && (_filter == null || _filter.matches(message));
     }

Modified: qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/HeadersExchange.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/HeadersExchange.java?rev=1560634&r1=1560633&r2=1560634&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/HeadersExchange.java (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/HeadersExchange.java Thu Jan 23 11:01:02 2014
@@ -23,7 +23,9 @@ package org.apache.qpid.server.exchange;
 import org.apache.log4j.Logger;
 
 import org.apache.qpid.server.binding.Binding;
-import org.apache.qpid.server.message.InboundMessage;
+import org.apache.qpid.server.filter.Filterable;
+import org.apache.qpid.server.message.InstanceProperties;
+import org.apache.qpid.server.message.ServerMessage;
 import org.apache.qpid.server.plugin.ExchangeType;
 import org.apache.qpid.server.queue.AMQQueue;
 import org.apache.qpid.server.queue.BaseQueue;
@@ -81,8 +83,8 @@ public class HeadersExchange extends Abs
         super(TYPE);
     }
 
-
-    public ArrayList<BaseQueue> doRoute(InboundMessage payload)
+    @Override
+    public ArrayList<BaseQueue> doRoute(ServerMessage payload, final InstanceProperties instanceProperties)
     {
         if (_logger.isDebugEnabled())
         {
@@ -93,7 +95,7 @@ public class HeadersExchange extends Abs
 
         for (HeadersBinding hb : _bindingHeaderMatchers)
         {
-            if (hb.matches(payload))
+            if (hb.matches(Filterable.Factory.newInstance(payload,instanceProperties)))
             {
                 Binding b = hb.getBinding();
 

Modified: qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/TopicExchange.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/TopicExchange.java?rev=1560634&r1=1560633&r2=1560634&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/TopicExchange.java (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/TopicExchange.java Thu Jan 23 11:01:02 2014
@@ -34,7 +34,10 @@ import org.apache.qpid.server.exchange.t
 import org.apache.qpid.server.exchange.topic.TopicMatcherResult;
 import org.apache.qpid.server.exchange.topic.TopicNormalizer;
 import org.apache.qpid.server.exchange.topic.TopicParser;
-import org.apache.qpid.server.message.InboundMessage;
+import org.apache.qpid.server.filter.FilterSupport;
+import org.apache.qpid.server.filter.Filterable;
+import org.apache.qpid.server.message.InstanceProperties;
+import org.apache.qpid.server.message.ServerMessage;
 import org.apache.qpid.server.plugin.ExchangeType;
 import org.apache.qpid.server.queue.AMQQueue;
 import org.apache.qpid.server.queue.BaseQueue;
@@ -144,15 +147,16 @@ public class TopicExchange extends Abstr
 
     }
 
-
-    public ArrayList<BaseQueue> doRoute(InboundMessage payload)
+    @Override
+    public ArrayList<BaseQueue> doRoute(ServerMessage payload, final InstanceProperties instanceProperties)
     {
 
         final String routingKey = payload.getRoutingKey() == null
                                           ? ""
                                           : payload.getRoutingKey();
 
-        final Collection<AMQQueue> matchedQueues = getMatchedQueues(payload, routingKey);
+        final Collection<AMQQueue> matchedQueues =
+                getMatchedQueues(Filterable.Factory.newInstance(payload,instanceProperties), routingKey);
 
         ArrayList<BaseQueue> queues;
 
@@ -209,7 +213,7 @@ public class TopicExchange extends Abstr
         }
     }
 
-    private Collection<AMQQueue> getMatchedQueues(InboundMessage message, String routingKey)
+    private Collection<AMQQueue> getMatchedQueues(Filterable message, String routingKey)
     {
 
         Collection<TopicMatcherResult> results = _parser.parse(routingKey);

Modified: qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/topic/TopicExchangeResult.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/topic/TopicExchangeResult.java?rev=1560634&r1=1560633&r2=1560634&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/topic/TopicExchangeResult.java (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/topic/TopicExchangeResult.java Thu Jan 23 11:01:02 2014
@@ -21,8 +21,8 @@
 package org.apache.qpid.server.exchange.topic;
 
 import org.apache.qpid.server.binding.Binding;
+import org.apache.qpid.server.filter.Filterable;
 import org.apache.qpid.server.filter.MessageFilter;
-import org.apache.qpid.server.message.InboundMessage;
 import org.apache.qpid.server.queue.AMQQueue;
 
 import java.util.ArrayList;
@@ -168,7 +168,7 @@ public final class TopicExchangeResult i
         _filteredQueues.put(queue,newFilters);
     }
 
-    public Collection<AMQQueue> processMessage(InboundMessage msg, Collection<AMQQueue> queues)
+    public Collection<AMQQueue> processMessage(Filterable msg, Collection<AMQQueue> queues)
     {
         if(queues == null)
         {

Modified: qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/filter/FilterManager.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/filter/FilterManager.java?rev=1560634&r1=1560633&r2=1560634&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/filter/FilterManager.java (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/filter/FilterManager.java Thu Jan 23 11:01:02 2014
@@ -23,8 +23,6 @@ package org.apache.qpid.server.filter;
 // Based on like named file from r450141 of the Apache ActiveMQ project <http://www.activemq.org/site/home.html>
 //
 
-import org.apache.qpid.server.queue.Filterable;
-
 public interface FilterManager
 {
     void add(MessageFilter filter);

Modified: qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/filter/JMSSelectorFilter.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/filter/JMSSelectorFilter.java?rev=1560634&r1=1560633&r2=1560634&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/filter/JMSSelectorFilter.java (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/filter/JMSSelectorFilter.java Thu Jan 23 11:01:02 2014
@@ -31,7 +31,6 @@ import org.apache.qpid.filter.SelectorPa
 import org.apache.qpid.filter.selector.ParseException;
 import org.apache.qpid.filter.selector.SelectorParser;
 import org.apache.qpid.filter.selector.TokenMgrError;
-import org.apache.qpid.server.queue.Filterable;
 
 
 public class JMSSelectorFilter implements MessageFilter

Modified: qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/filter/MessageFilter.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/filter/MessageFilter.java?rev=1560634&r1=1560633&r2=1560634&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/filter/MessageFilter.java (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/filter/MessageFilter.java Thu Jan 23 11:01:02 2014
@@ -20,8 +20,6 @@
  */
 package org.apache.qpid.server.filter;
 
-import org.apache.qpid.server.queue.Filterable;
-
 public interface MessageFilter
 {
     boolean matches(Filterable message);

Modified: qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/filter/NoConsumerFilter.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/filter/NoConsumerFilter.java?rev=1560634&r1=1560633&r2=1560634&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/filter/NoConsumerFilter.java (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/filter/NoConsumerFilter.java Thu Jan 23 11:01:02 2014
@@ -23,7 +23,6 @@ package org.apache.qpid.server.filter;
 import org.apache.log4j.Logger;
 
 import org.apache.qpid.AMQException;
-import org.apache.qpid.server.queue.Filterable;
 
 public class NoConsumerFilter implements MessageFilter
 {

Modified: qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/filter/SimpleFilterManager.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/filter/SimpleFilterManager.java?rev=1560634&r1=1560633&r2=1560634&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/filter/SimpleFilterManager.java (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/filter/SimpleFilterManager.java Thu Jan 23 11:01:02 2014
@@ -22,8 +22,6 @@ package org.apache.qpid.server.filter;
 
 import org.apache.log4j.Logger;
 
-import org.apache.qpid.server.queue.Filterable;
-
 import java.util.concurrent.ConcurrentLinkedQueue;
 
 public class SimpleFilterManager implements FilterManager

Modified: qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/log4j/LoggingManagementFacade.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/log4j/LoggingManagementFacade.java?rev=1560634&r1=1560633&r2=1560634&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/log4j/LoggingManagementFacade.java (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/log4j/LoggingManagementFacade.java Thu Jan 23 11:01:02 2014
@@ -25,6 +25,8 @@ import org.apache.log4j.LogManager;
 import org.apache.log4j.Logger;
 import org.apache.log4j.xml.DOMConfigurator;
 import org.apache.log4j.xml.Log4jEntityResolver;
+import org.apache.qpid.util.FileUtils;
+import org.apache.qpid.util.SystemUtils;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.w3c.dom.NodeList;
@@ -293,7 +295,9 @@ public class LoggingManagementFacade
     public List<String> getAvailableLoggerLevels()
     {
         return new ArrayList<String>()
-        {{
+        {
+            private static final long serialVersionUID = 599203507907836466L;
+        {
            add(Level.ALL.toString());
            add(Level.TRACE.toString());
            add(Level.DEBUG.toString());
@@ -364,6 +368,65 @@ public class LoggingManagementFacade
             throw new IOException("Specified log4j XML configuration file is not writable");
         }
 
+        // Swap temp file in to replace existing configuration file.
+        File old = new File(log4jConfigFile.getAbsoluteFile() + ".old");
+        if (old.exists())
+        {
+            old.delete();
+        }
+
+        if(!SystemUtils.isWindows())
+        {
+
+            File tmp;
+            Random r = new Random();
+
+            final String absolutePath = log4jConfigFile.getAbsolutePath();
+            do
+            {
+                tmp = new File(absolutePath + r.nextInt() + ".tmp");
+            }
+            while(tmp.exists());
+
+            tmp.deleteOnExit();
+
+            writeConfigToFile(doc, new FileOutputStream(tmp));
+
+            if(!log4jConfigFile.renameTo(old))
+            {
+                //unable to rename the existing file to the backup name
+                LOGGER.error("Could not backup the existing log4j XML file");
+                throw new IOException("Could not backup the existing log4j XML file");
+            }
+
+            if(!tmp.renameTo(new File(absolutePath)))
+            {
+                //failed to rename the new file to the required filename
+
+                if(!old.renameTo(log4jConfigFile))
+                {
+                    //unable to return the backup to required filename
+                    LOGGER.error("Could not rename the new log4j configuration file into place, and unable to restore original file");
+                    throw new IOException("Could not rename the new log4j configuration file into place, and unable to restore original file");
+                }
+
+                LOGGER.error("Could not rename the new log4j configuration file into place");
+                throw new IOException("Could not rename the new log4j configuration file into place");
+            }
+        }
+        else
+        {
+            // In windows we can't do a safe rename current -> old, tmp -> current as it will not allow
+            // a new file with the same name as current to be created while it is still open.
+
+            // Instead we have to do an unsafe "copy current to old", "replace current contents with tmp contents"
+            FileUtils.copy(log4jConfigFile,old);
+            writeConfigToFile(doc, new FileOutputStream(log4jConfigFile));
+        }
+    }
+
+    private void writeConfigToFile(Document doc, FileOutputStream outputFile) throws TransformerConfigurationException, IOException
+    {
         Transformer transformer = null;
         transformer = TransformerFactory.newInstance().newTransformer();
 
@@ -371,20 +434,10 @@ public class LoggingManagementFacade
         transformer.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM, "log4j.dtd");
         DOMSource source = new DOMSource(doc);
 
-        File tmp;
-        Random r = new Random();
-
-        do
-        {
-            tmp = new File(log4jConfigFile.getAbsolutePath() + r.nextInt() + ".tmp");
-        }
-        while(tmp.exists());
-
-        tmp.deleteOnExit();
 
         try
         {
-            StreamResult result = new StreamResult(new FileOutputStream(tmp));
+            StreamResult result = new StreamResult(outputFile);
             transformer.transform(source, result);
         }
         catch (TransformerException e)
@@ -392,35 +445,6 @@ public class LoggingManagementFacade
             LOGGER.warn("Could not transform the XML into new file: ", e);
             throw new IOException("Could not transform the XML into new file: ", e);
         }
-
-        // Swap temp file in to replace existing configuration file.
-        File old = new File(log4jConfigFile.getAbsoluteFile() + ".old");
-        if (old.exists())
-        {
-            old.delete();
-        }
-
-        if(!log4jConfigFile.renameTo(old))
-        {
-            //unable to rename the existing file to the backup name
-            LOGGER.error("Could not backup the existing log4j XML file");
-            throw new IOException("Could not backup the existing log4j XML file");
-        }
-
-        if(!tmp.renameTo(log4jConfigFile))
-        {
-            //failed to rename the new file to the required filename
-
-            if(!old.renameTo(log4jConfigFile))
-            {
-                //unable to return the backup to required filename
-                LOGGER.error("Could not rename the new log4j configuration file into place, and unable to restore original file");
-                throw new IOException("Could not rename the new log4j configuration file into place, and unable to restore original file");
-            }
-
-            LOGGER.error("Could not rename the new log4j configuration file into place");
-            throw new IOException("Could not rename the new log4j configuration file into place");
-        }
     }
 
     //method to parse the XML configuration file, validating it in the process, and returning a DOM Document of the content.

Modified: qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/message/AMQMessageHeader.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/message/AMQMessageHeader.java?rev=1560634&r1=1560633&r2=1560634&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/message/AMQMessageHeader.java (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/message/AMQMessageHeader.java Thu Jan 23 11:01:02 2014
@@ -47,10 +47,6 @@ public interface AMQMessageHeader
 
     String getReplyTo();
 
-    String getReplyToExchange();
-    String getReplyToRoutingKey();
-
-
     Object getHeader(String name);
 
     boolean containsHeaders(Set<String> names);

Modified: qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/message/AbstractServerMessageImpl.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/message/AbstractServerMessageImpl.java?rev=1560634&r1=1560633&r2=1560634&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/message/AbstractServerMessageImpl.java (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/message/AbstractServerMessageImpl.java Thu Jan 23 11:01:02 2014
@@ -23,9 +23,11 @@ package org.apache.qpid.server.message;
 import org.apache.qpid.server.store.StorableMessageMetaData;
 import org.apache.qpid.server.store.StoredMessage;
 
+import java.nio.ByteBuffer;
+import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 
-public abstract class AbstractServerMessageImpl<T extends StorableMessageMetaData> implements ServerMessage<T>
+public abstract class AbstractServerMessageImpl<X extends AbstractServerMessageImpl<X,T>, T extends StorableMessageMetaData> implements ServerMessage<T>
 {
 
     private static final AtomicIntegerFieldUpdater<AbstractServerMessageImpl> _refCountUpdater =
@@ -33,10 +35,13 @@ public abstract class AbstractServerMess
 
     private volatile int _referenceCount = 0;
     private final StoredMessage<T> _handle;
+    private final Object _connectionReference;
 
-    public AbstractServerMessageImpl(StoredMessage<T> handle)
+
+    public AbstractServerMessageImpl(StoredMessage<T> handle, Object connectionReference)
     {
         _handle = handle;
+        _connectionReference = connectionReference;
     }
 
     public StoredMessage<T> getStoredMessage()
@@ -44,16 +49,11 @@ public abstract class AbstractServerMess
         return _handle;
     }
 
-    public boolean incrementReference()
+    private boolean incrementReference()
     {
-        return incrementReference(1);
-    }
-
-    public boolean incrementReference(int count)
-    {
-        if(_refCountUpdater.addAndGet(this, count) <= 0)
+        if(_refCountUpdater.incrementAndGet(this) <= 0)
         {
-            _refCountUpdater.addAndGet(this, -count);
+            _refCountUpdater.decrementAndGet(this);
             return false;
         }
         else
@@ -67,7 +67,7 @@ public abstract class AbstractServerMess
      * message store.
      *
      */
-    public void decrementReference()
+    private void decrementReference()
     {
         int count = _refCountUpdater.decrementAndGet(this);
 
@@ -104,8 +104,72 @@ public abstract class AbstractServerMess
         return "(HC:" + System.identityHashCode(this) + " ID:" + getMessageNumber() + " Ref:" + getReferenceCount() + ")";
     }
 
-    protected int getReferenceCount()
+    private int getReferenceCount()
     {
         return _referenceCount;
     }
+
+    @Override
+    final public MessageReference<X> newReference()
+    {
+        return new Reference();
+    }
+
+    @Override
+    final public boolean isPersistent()
+    {
+        return _handle.getMetaData().isPersistent();
+    }
+
+    @Override
+    final public long getMessageNumber()
+    {
+        return getStoredMessage().getMessageNumber();
+    }
+
+    @Override
+    final public int getContent(ByteBuffer buf, int offset)
+    {
+        return getStoredMessage().getContent(offset, buf);
+    }
+
+    @Override
+    final public ByteBuffer getContent(int offset, int size)
+    {
+        return getStoredMessage().getContent(offset, size);
+    }
+
+    final public Object getConnectionReference()
+    {
+        return _connectionReference;
+    }public String toString()
+    {
+        return "Message[" + debugIdentity() + "]";
+    }
+
+    private final class Reference implements MessageReference<X>
+    {
+
+        private final AtomicBoolean _released = new AtomicBoolean(false);
+
+        private Reference()
+        {
+            incrementReference();
+        }
+
+        public X getMessage()
+        {
+            return (X) AbstractServerMessageImpl.this;
+        }
+
+        public void release()
+        {
+            if(!_released.getAndSet(true))
+            {
+                decrementReference();
+            }
+        }
+
+    }
+
 }

Modified: qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/message/MessageReference.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/message/MessageReference.java?rev=1560634&r1=1560633&r2=1560634&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/message/MessageReference.java (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/message/MessageReference.java Thu Jan 23 11:01:02 2014
@@ -20,39 +20,8 @@
  */
 package org.apache.qpid.server.message;
 
-import java.util.concurrent.atomic.AtomicBoolean;
-
-public abstract class MessageReference<M extends ServerMessage>
+public interface MessageReference<M extends ServerMessage>
 {
-
-    private final AtomicBoolean _released = new AtomicBoolean(false);
-
-    private volatile M _message;
-
-    public MessageReference(M message)
-    {
-        _message = message;
-        onReference(message);
-    }
-
-    abstract protected void onReference(M message);
-
-    abstract protected void onRelease(M message);
-
-    public M getMessage()
-    {
-        return _message;
-    }
-
-    public void release()
-    {
-        if(!_released.getAndSet(true))
-        {
-            if(_message != null)
-            {
-                onRelease(_message);
-            }
-        }
-    }
-
+    public M getMessage();
+    public void release();
 }

Modified: qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/message/ServerMessage.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/message/ServerMessage.java?rev=1560634&r1=1560633&r2=1560634&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/message/ServerMessage.java (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/message/ServerMessage.java Thu Jan 23 11:01:02 2014
@@ -37,8 +37,6 @@ public interface ServerMessage<T extends
 
     long getSize();
 
-    boolean isImmediate();
-
     long getExpiration();
 
     MessageReference newReference();
@@ -51,4 +49,5 @@ public interface ServerMessage<T extends
 
     public ByteBuffer getContent(int offset, int size);
 
+    Object getConnectionReference();
 }

Modified: qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java?rev=1560634&r1=1560633&r2=1560634&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java Thu Jan 23 11:01:02 2014
@@ -71,6 +71,7 @@ import org.apache.qpid.server.stats.Stat
 import org.apache.qpid.server.store.MessageStoreCreator;
 import org.apache.qpid.server.util.MapValueConverter;
 import org.apache.qpid.server.virtualhost.VirtualHostRegistry;
+import org.apache.qpid.util.SystemUtils;
 
 public class BrokerAdapter extends AbstractAdapter implements Broker, ConfigurationChangeListener
 {
@@ -755,9 +756,7 @@ public class BrokerAdapter extends Abstr
         }
         else if(OPERATING_SYSTEM.equals(name))
         {
-            return System.getProperty("os.name") + " "
-                   + System.getProperty("os.version") + " "
-                   + System.getProperty("os.arch");
+            return SystemUtils.getOSString();
         }
         else if(PLATFORM.equals(name))
         {



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org


Mime
View raw message