[java] transaction handling

2010-03-31 Thread Aidan Skinner
I've recently been wrestling with transaction handling in the java
broker in the context of 0-9-1 compliance. We're currently not
strictly spec compliant with 0-9-1 as we will resend messages that
have been rolled back. 0-9 and 0-8 are... ambiguous... on this matter,
and I've been trying to retain current behaviour for them.

However, it's a) a massive PITA and b) probably Not What You Want. If
you're rolling back a consume it's almost certainly because you can't
cope with the message.

If you think b) I'd like to float the idea of 0.8 being the "we are
breaking backwards compatibility" release so we can fix the conf file,
the command line etc.

Thoughts?

- Aidan
-- 
Apache Qpid - AMQP, JMS, other messaging love http://qpid.apache.org
"A witty saying proves nothing" - Voltaire

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



Re: Unresolved issues but marked 0.6

2010-03-31 Thread Aidan Skinner
On Tue, Mar 30, 2010 at 4:28 PM, Marnie McCormack
 wrote:

> That's corect - they will have done. I've been reviewing them when time
> permits, but happy for other devs to review too to aid progress. Hoping
> we'll have more time for review in the 0.8 cycle.

This is essentially inevitable with CTR. Somehow there's never enough
time to get around to all the reviews, but I've never seen a patch not
go in due to lack of review time with RTC.

- Aidan

-- 
Apache Qpid - AMQP, JMS, other messaging love http://qpid.apache.org
"A witty saying proves nothing" - Voltaire

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



Re: svn commit: r926829 - /qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client/message/JMSDestinationTest.java

2010-03-31 Thread Aidan Skinner
On Wed, Mar 31, 2010 at 7:56 PM, Rajith Attapattu  wrote:
> We could temporarily exclude until the issue is fixed.
> If you are going to check in a fix soon, I'd say don't bother.

I'm not entirely clear on what the issue with this is at this stage.
Is the problem that the java broker doesn't auto-declare exchanges on
first use? AFAICT ritchiem's commits in December should have resolved
the problem with the header itself.  In any case I think it'd be
clearer if the test did an explicit exchange declare.

- Aidan

-- 
Apache Qpid - AMQP, JMS, other messaging love http://qpid.apache.org
"A witty saying proves nothing" - Voltaire

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



Re: Performance measurement clients using the new API.

2010-03-31 Thread Alan Conway

On 03/31/2010 02:22 PM, Rafael Schloming wrote:

Gordon Sim wrote:

On 03/31/2010 05:41 PM, Alan Conway wrote:

I think we can extend qpid_send and qpid_recv to do most of the things
that perftest and latencytest do. Interested in any ideas on the topic.


I like the approach.


+1


Here's what I propose:

Additional qpid_send options:
--report=Y/N: report sender throughput on exit.
--report-interval=SECS: print throughput report every N seconds.


FYI qpid-bench does this based on # of messages as opposed to time (not
sure which is preferred or if both make sense in some scenarios).


--timestamp=Y/N: timestamp each message.
--rate=MSGS/SEC: send at this rate, 0 means fast as possible.
--padding=BYTES: add this much padding to messages.
--time-limit=SECS: stop after this time, 0 means no limit.
--max-noreply=N: don't send more than N messages without receiving a
reply.
Creates a reply queue and sets reply_to on every N/2 messages.


In addition you'd need to configure things like sender/receiver
capacity, sync/async, etc.


Indeed, some if this is already there in qpid_send the options mentioned above 
are additions to whats there now.





qpid_send currently reads in message content from std::in. This can be
very useful for ad-hoc tests or scripting different types of test.
However for performance you would most likely want to avoid any extra
overhead and have the message content generated by the tool itself.


Additional qpid_recv options:
--report=Y/N: report latency and throughput statistics on exit.
Latency is only calculated for messages with a timestamp.
--report-interval=SECS: print latency and throughput statistics every N
seconds.

New qpid_recv behavior: if reply-to is set, echo the message to that
address.


I could see two different types of useful behaviour here. One as
above, where you echo the message. Another would simply be to send an
empty message correlated by correlation-id. E.g. for the case where
the original message is very large and you only wish the response to
indicate that it was received (could have received message sie in the
response message in some way). Of course keeping it simple to begin
with is also fine!


If we want the flexibility I would suggest putting some sort of opcode
in the original message that would instruct the receiver how to respond,
e.g. echo the original message, send an empty (but correlated) message,
or even send a message with the receiver's current stats in it.


qpid_recv also prints out each message to std::out and again this
would need to be optional to avoid impacting perf numbers. The python
drain example has a nice feature where you can specify what aspect of
each message gets printed. Adding that to qpid_recv would be valuable.


The --max-noreply=N option is a simple form of end-to-end throughput.
The sender sets reply-to on every N/2 messages. It won't send more than
N messages beyond the last message that was replied to. The receiver
replies whenever reply-to is set.

Multiple instances of sender & receiver can be mixed and matched however
you want, to measure e.g. shared queue, pub-sub etc. scenarios. I'm
deliberately avoiding the do-everything swiss army knife approach of
perftest, that results in an overly complex test that is not as flexible
as the separate sender/receiver approach.


One thing that would be useful is to have multiple sessions per
connection for send/recv. This would be useful even for performance
testing, though it does complicate the reporting a little.


Overall I'm not sure we should try to cram too much into qpid-send and
qpid-recv. I think it might make sense to have two sets of utilities
with the difference being based on whether the utilities themselves
generate the messages, or whether they're simply used to send/recv
messages generated outside the utilities. I think the use cases around
these two scenarios are fairly different.

The things that generate/consume their own content are more oriented
towards diagnostics/testing/benchmarking, and I would expect to have
options around frequency, size, type of content, etc, whereas the things
that send/recv existing content would have more options around reading
in messages from various formats, writing them out, etc.

I propose thinking in terms of qpid-send/qpid-recv which are basically
command line versions of the API used to send/recv message content
generated outside the utility (that content could come by file,
command-line args, stdin, etc), and then qpid-source/qpid-sink which are
used as artificial sources/sinks for messages and more oriented towards
testing/diagnostics/performance.



I'm not sure I see the benefit of this distinction. I would be inclined to think 
of qpid-send/receive as tools that send messages generated in various ways: 2 of 
which being read from stdin and generated internally, we could add more as needed.

--Rafael


-
Apache Qpid - AMQP Messaging Implementation
Pr

RE: svn commit: r926829 - /qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client/message/JMSDestinationTest.java

2010-03-31 Thread Robbie Gemmell
I don't have any current plans to look at it, so ill exclude it tomorrow
(can't be bothered firing up the dev env just now, enough of this computer
lark for tonight... time for Lost :P)

Robbie

> -Original Message-
> From: Rajith Attapattu [mailto:rajit...@gmail.com]
> Sent: 31 March 2010 19:57
> To: dev@qpid.apache.org
> Subject: Re: svn commit: r926829 -
> /qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/clien
> t/message/JMSDestinationTest.java
> 
> We could temporarily exclude until the issue is fixed.
> If you are going to check in a fix soon, I'd say don't bother.
> 
> Rajith
> 
> On Wed, Mar 31, 2010 at 2:54 PM, Robbie Gemmell
>  wrote:
> > This new test fails on all the Java test profiles other than
> java.0.10. Is it ok to exclude it from these?
> >
> > Regards,
> > Robbie
> >
> >> -Original Message-
> >> From: raj...@apache.org [mailto:raj...@apache.org]
> >> Sent: 23 March 2010 22:48
> >> To: comm...@qpid.apache.org
> >> Subject: svn commit: r926829 -
> >>
> /qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/clien
> >> t/message/JMSDestinationTest.java
> >>
> >> Author: rajith
> >> Date: Tue Mar 23 22:48:23 2010
> >> New Revision: 926829
> >>
> >> URL: http://svn.apache.org/viewvc?rev=926829&view=rev
> >> Log:
> >> Added test case for QPID-2242 using a custom exchange to verify the
> >> fix.
> >>
> >> Modified:
> >>
> >>
> qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client
> >> /message/JMSDestinationTest.java
> >>
> >> Modified:
> >>
> qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client
> >> /message/JMSDestinationTest.java
> >> URL:
> >>
> http://svn.apache.org/viewvc/qpid/trunk/qpid/java/systests/src/main/jav
> >>
> a/org/apache/qpid/test/client/message/JMSDestinationTest.java?rev=92682
> >> 9&r1=926828&r2=926829&view=diff
> >>
> ===
> >> ===
> >> ---
> >>
> qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client
> >> /message/JMSDestinationTest.java (original)
> >> +++
> >>
> qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client
> >> /message/JMSDestinationTest.java Tue Mar 23 22:48:23 2010
> >> @@ -21,9 +21,11 @@
> >>  package org.apache.qpid.test.client.message;
> >>
> >>  import org.apache.qpid.configuration.ClientProperties;
> >> +import org.apache.qpid.client.AMQAnyDestination;
> >>  import org.apache.qpid.client.AMQDestination;
> >>  import org.apache.qpid.client.AMQTopic;
> >>  import org.apache.qpid.client.CustomJMSXProperty;
> >> +import org.apache.qpid.framing.AMQShortString;
> >>  import org.apache.qpid.management.common.mbeans.ManagedQueue;
> >>  import org.apache.qpid.test.utils.JMXTestUtils;
> >>  import org.apache.qpid.test.utils.QpidTestCase;
> >> @@ -327,4 +329,45 @@ public class JMSDestinationTest extends
> >>
> >>      }
> >>
> >> +    /**
> >> +     * Send a message to a custom exchange and then verify
> >> +     * the message received has the proper destination set
> >> +     *
> >> +     * @throws Exception
> >> +     */
> >> +    public void testGetDestinationWithCustomExchange() throws
> >> Exception
> >> +    {
> >> +
> >> +        AMQDestination dest = new AMQAnyDestination(new
> >> AMQShortString("my-exchange"),
> >> +                                                    new
> >> AMQShortString("direct"),
> >> +                                                    new
> >> AMQShortString("test"),
> >> +                                                    false,
> >> +                                                    false,
> >> +                                                    new
> >> AMQShortString("test"),
> >> +                                                    false,
> >> +                                                    new
> >> AMQShortString[]{new AMQShortString("test")});
> >> +
> >> +        // to force the creation of my-exchange.
> >> +        sendMessage(_session, dest, 1);
> >> +
> >> +        MessageProducer prod = _session.createProducer(dest);
> >> +
> >> +        MessageConsumer consumer = _session.createConsumer(dest);
> >> +
> >> +        _connection.start();
> >> +
> >> +        sendMessage(_session, dest, 1);
> >> +
> >> +        Message message = consumer.receive(1);
> >> +
> >> +        assertNotNull("Message should not be null", message);
> >> +
> >> +        Destination destination = message.getJMSDestination();
> >> +
> >> +        assertNotNull("JMSDestination should not be null",
> >> destination);
> >> +
> >> +        assertEquals("Incorrect Destination name", "my-exchange",
> >> dest.getExchangeName().asString());
> >> +        assertEquals("Incorrect Destination type", "direct",
> >> dest.getExchangeClass().asString());
> >> +        assertEquals("Incorrect Routing Key", "test",
> >> dest.getRoutingKey().asString());
> >> +    }
> >>  }
> >>
> >>
> >>
> >> 
> -
> >> 

Re: svn commit: r926829 - /qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client/message/JMSDestinationTest.java

2010-03-31 Thread Rajith Attapattu
We could temporarily exclude until the issue is fixed.
If you are going to check in a fix soon, I'd say don't bother.

Rajith

On Wed, Mar 31, 2010 at 2:54 PM, Robbie Gemmell
 wrote:
> This new test fails on all the Java test profiles other than java.0.10. Is it 
> ok to exclude it from these?
>
> Regards,
> Robbie
>
>> -Original Message-
>> From: raj...@apache.org [mailto:raj...@apache.org]
>> Sent: 23 March 2010 22:48
>> To: comm...@qpid.apache.org
>> Subject: svn commit: r926829 -
>> /qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/clien
>> t/message/JMSDestinationTest.java
>>
>> Author: rajith
>> Date: Tue Mar 23 22:48:23 2010
>> New Revision: 926829
>>
>> URL: http://svn.apache.org/viewvc?rev=926829&view=rev
>> Log:
>> Added test case for QPID-2242 using a custom exchange to verify the
>> fix.
>>
>> Modified:
>>
>> qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client
>> /message/JMSDestinationTest.java
>>
>> Modified:
>> qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client
>> /message/JMSDestinationTest.java
>> URL:
>> http://svn.apache.org/viewvc/qpid/trunk/qpid/java/systests/src/main/jav
>> a/org/apache/qpid/test/client/message/JMSDestinationTest.java?rev=92682
>> 9&r1=926828&r2=926829&view=diff
>> ===
>> ===
>> ---
>> qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client
>> /message/JMSDestinationTest.java (original)
>> +++
>> qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client
>> /message/JMSDestinationTest.java Tue Mar 23 22:48:23 2010
>> @@ -21,9 +21,11 @@
>>  package org.apache.qpid.test.client.message;
>>
>>  import org.apache.qpid.configuration.ClientProperties;
>> +import org.apache.qpid.client.AMQAnyDestination;
>>  import org.apache.qpid.client.AMQDestination;
>>  import org.apache.qpid.client.AMQTopic;
>>  import org.apache.qpid.client.CustomJMSXProperty;
>> +import org.apache.qpid.framing.AMQShortString;
>>  import org.apache.qpid.management.common.mbeans.ManagedQueue;
>>  import org.apache.qpid.test.utils.JMXTestUtils;
>>  import org.apache.qpid.test.utils.QpidTestCase;
>> @@ -327,4 +329,45 @@ public class JMSDestinationTest extends
>>
>>      }
>>
>> +    /**
>> +     * Send a message to a custom exchange and then verify
>> +     * the message received has the proper destination set
>> +     *
>> +     * @throws Exception
>> +     */
>> +    public void testGetDestinationWithCustomExchange() throws
>> Exception
>> +    {
>> +
>> +        AMQDestination dest = new AMQAnyDestination(new
>> AMQShortString("my-exchange"),
>> +                                                    new
>> AMQShortString("direct"),
>> +                                                    new
>> AMQShortString("test"),
>> +                                                    false,
>> +                                                    false,
>> +                                                    new
>> AMQShortString("test"),
>> +                                                    false,
>> +                                                    new
>> AMQShortString[]{new AMQShortString("test")});
>> +
>> +        // to force the creation of my-exchange.
>> +        sendMessage(_session, dest, 1);
>> +
>> +        MessageProducer prod = _session.createProducer(dest);
>> +
>> +        MessageConsumer consumer = _session.createConsumer(dest);
>> +
>> +        _connection.start();
>> +
>> +        sendMessage(_session, dest, 1);
>> +
>> +        Message message = consumer.receive(1);
>> +
>> +        assertNotNull("Message should not be null", message);
>> +
>> +        Destination destination = message.getJMSDestination();
>> +
>> +        assertNotNull("JMSDestination should not be null",
>> destination);
>> +
>> +        assertEquals("Incorrect Destination name", "my-exchange",
>> dest.getExchangeName().asString());
>> +        assertEquals("Incorrect Destination type", "direct",
>> dest.getExchangeClass().asString());
>> +        assertEquals("Incorrect Routing Key", "test",
>> dest.getRoutingKey().asString());
>> +    }
>>  }
>>
>>
>>
>> -
>> Apache Qpid - AMQP Messaging Implementation
>> Project:      http://qpid.apache.org
>> Use/Interact: mailto:commits-subscr...@qpid.apache.org
>
>
>
> -
> Apache Qpid - AMQP Messaging Implementation
> Project:      http://qpid.apache.org
> Use/Interact: mailto:dev-subscr...@qpid.apache.org
>
>



-- 
Regards,

Rajith Attapattu
Red Hat
http://rajith.2rlabs.com/

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



[jira] Commented: (QPID-2418) Existing durable subscription with selector is not unsubscribed during change to new subscription

2010-03-31 Thread Rajith Attapattu (JIRA)

[ 
https://issues.apache.org/jira/browse/QPID-2418?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12852046#action_12852046
 ] 

Rajith Attapattu commented on QPID-2418:


Interesting, the queue declare with the new selector merely updates the the 
selector on the queue?
The AMQP spec doesn't really define the behaviour if a queue declare is sent 
with the same name but different args (in this case the selector).
So I wouldn't argue that the Java broker is wrong. The c++ client merely 
ignores the queue declare.
IMO I think both brokers are wrong as this can lead to subtle errors that can 
go undetected -  but thats separate topic all together.

So on the C++ side, the queue is not deleted due to the java client bug. 
So the message is there and gets sent to the client who now has a new selector 
(with 0-10 client side selectors) which matches and the message is delivered.

Anyways once we fix the Java client to issue a queue this should be taken care 
of.
Always a good idea to run the default java and c++ profiles before an update.

>  Existing durable subscription with selector is not unsubscribed during 
> change to new subscription
> --
>
> Key: QPID-2418
> URL: https://issues.apache.org/jira/browse/QPID-2418
> Project: Qpid
>  Issue Type: Bug
>  Components: Java Client
>Affects Versions: M4, 0.5, 0.6
>Reporter: Robbie Gemmell
>Assignee: Robbie Gemmell
> Fix For: 0.7
>
> Attachments: 0001-QPID-2418-branch.patch, 0001-QPID-2418-trunk.patch
>
>
> AMQSession.createDurableSubscriber(topic, name, messageSelector, noLocal) 
> does not unsubscribe existing durable subscriptions. Whilst it does check for 
> existing durable subscriptions in use by the client with the same name, it 
> instead simply closes the subscriptions then creates a new one. As a result 
> of not unsubscribing, the queue backing the subscription is not deleted 
> before being used by the updated subscription as it should be (and as happens 
> in the 0_8 and 0_10 subclasses when using durable subscriptions without 
> selectors).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


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



RE: svn commit: r926829 - /qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client/message/JMSDestinationTest.java

2010-03-31 Thread Robbie Gemmell
This new test fails on all the Java test profiles other than java.0.10. Is it 
ok to exclude it from these?

Regards, 
Robbie

> -Original Message-
> From: raj...@apache.org [mailto:raj...@apache.org]
> Sent: 23 March 2010 22:48
> To: comm...@qpid.apache.org
> Subject: svn commit: r926829 -
> /qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/clien
> t/message/JMSDestinationTest.java
> 
> Author: rajith
> Date: Tue Mar 23 22:48:23 2010
> New Revision: 926829
> 
> URL: http://svn.apache.org/viewvc?rev=926829&view=rev
> Log:
> Added test case for QPID-2242 using a custom exchange to verify the
> fix.
> 
> Modified:
> 
> qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client
> /message/JMSDestinationTest.java
> 
> Modified:
> qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client
> /message/JMSDestinationTest.java
> URL:
> http://svn.apache.org/viewvc/qpid/trunk/qpid/java/systests/src/main/jav
> a/org/apache/qpid/test/client/message/JMSDestinationTest.java?rev=92682
> 9&r1=926828&r2=926829&view=diff
> ===
> ===
> ---
> qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client
> /message/JMSDestinationTest.java (original)
> +++
> qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client
> /message/JMSDestinationTest.java Tue Mar 23 22:48:23 2010
> @@ -21,9 +21,11 @@
>  package org.apache.qpid.test.client.message;
> 
>  import org.apache.qpid.configuration.ClientProperties;
> +import org.apache.qpid.client.AMQAnyDestination;
>  import org.apache.qpid.client.AMQDestination;
>  import org.apache.qpid.client.AMQTopic;
>  import org.apache.qpid.client.CustomJMSXProperty;
> +import org.apache.qpid.framing.AMQShortString;
>  import org.apache.qpid.management.common.mbeans.ManagedQueue;
>  import org.apache.qpid.test.utils.JMXTestUtils;
>  import org.apache.qpid.test.utils.QpidTestCase;
> @@ -327,4 +329,45 @@ public class JMSDestinationTest extends
> 
>  }
> 
> +/**
> + * Send a message to a custom exchange and then verify
> + * the message received has the proper destination set
> + *
> + * @throws Exception
> + */
> +public void testGetDestinationWithCustomExchange() throws
> Exception
> +{
> +
> +AMQDestination dest = new AMQAnyDestination(new
> AMQShortString("my-exchange"),
> +new
> AMQShortString("direct"),
> +new
> AMQShortString("test"),
> +false,
> +false,
> +new
> AMQShortString("test"),
> +false,
> +new
> AMQShortString[]{new AMQShortString("test")});
> +
> +// to force the creation of my-exchange.
> +sendMessage(_session, dest, 1);
> +
> +MessageProducer prod = _session.createProducer(dest);
> +
> +MessageConsumer consumer = _session.createConsumer(dest);
> +
> +_connection.start();
> +
> +sendMessage(_session, dest, 1);
> +
> +Message message = consumer.receive(1);
> +
> +assertNotNull("Message should not be null", message);
> +
> +Destination destination = message.getJMSDestination();
> +
> +assertNotNull("JMSDestination should not be null",
> destination);
> +
> +assertEquals("Incorrect Destination name", "my-exchange",
> dest.getExchangeName().asString());
> +assertEquals("Incorrect Destination type", "direct",
> dest.getExchangeClass().asString());
> +assertEquals("Incorrect Routing Key", "test",
> dest.getRoutingKey().asString());
> +}
>  }
> 
> 
> 
> -
> Apache Qpid - AMQP Messaging Implementation
> Project:  http://qpid.apache.org
> Use/Interact: mailto:commits-subscr...@qpid.apache.org



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



Re: Performance measurement clients using the new API.

2010-03-31 Thread Justin Ross

On Wed, 31 Mar 2010, Rafael Schloming wrote:

Overall I'm not sure we should try to cram too much into qpid-send and 
qpid-recv. I think it might make sense to have two sets of utilities with the 
difference being based on whether the utilities themselves generate the 
messages, or whether they're simply used to send/recv messages generated 
outside the utilities. I think the use cases around these two scenarios are 
fairly different.


The things that generate/consume their own content are more oriented towards 
diagnostics/testing/benchmarking, and I would expect to have options around 
frequency, size, type of content, etc, whereas the things that send/recv 
existing content would have more options around reading in messages from 
various formats, writing them out, etc.


I propose thinking in terms of qpid-send/qpid-recv which are basically 
command line versions of the API used to send/recv message content generated 
outside the utility (that content could come by file, command-line args, 
stdin, etc), and then qpid-source/qpid-sink which are used as artificial 
sources/sinks for messages and more oriented towards 
testing/diagnostics/performance.


(Watch out!  Naming talk.)

Generally speaking, names in user-facing tools should identity match their 
equivalents in other contexts (the API modulo stemming, language in 
documentation, etc).  Variation is useful to the user when it stands for a 
difference, and it's detrimental when it doesn't.


Since "recv" doesn't appear in the API or elsewhere in qpid messaging, it 
shouldn't appear in the tool's name either.  "recv" may seem nice because 
it's shorter, but it's one more variant for the user to remember.


So, I'd vote for qpid-receive instead.

Justin

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



RE: svn commit: r929095 - in /qpid/trunk/qpid/java: systests/src/main/java/org/apache/qpid/test/unit/ct/ systests/src/main/java/org/apache/qpid/test/unit/topic/ test-profiles/

2010-03-31 Thread Robbie Gemmell
The changes made to DurableSubscriptionTest were not intended to yet expose
this bug any more than it was, and were deliberately kept short so that they
wouldnt (the comment is innacurate youll note, as it isnt doing what it was
originally and I forgot to update that). The new test added in
DurableSubscriberTest that absolutely would expose it was excluded until it
is fixed so that automated builds wouldnt be been broken. 

What I didnt do was run the test using the C++ broker as I didnt think I was
changing anything of any particular note, but I failed to consider that it
could behave slightly differently due to use of client side selectors rather
than the server side selectors used by the Java broker. The broker doesnt
create a new queue, but it does change the filters used to select messages
meaning that messages never get onto the queue which will on the C++ broker,
which I imagine is where the test now fails. I'll take that into account
when updating it.

Robbie

> -Original Message-
> From: Rajith Attapattu [mailto:rajit...@gmail.com]
> Sent: 31 March 2010 19:20
> To: dev@qpid.apache.org; robbie.gemm...@gmail.com
> Subject: Re: svn commit: r929095 - in /qpid/trunk/qpid/java:
> systests/src/main/java/org/apache/qpid/test/unit/ct/
> systests/src/main/java/org/apache/qpid/test/unit/topic/ test-profiles/
> 
> Robbie,
> 
> The change to the test case is causing the test to fail when run
> against the c++ (which should be expected as we have a bug in the Java
> client).
> However it's passing against the Java broker, so perhaps better to
> investigate this.
> I suspect the broker is creating a new queue bcos the args list is
> different (the selector being different)?
> 
> Also I think we shouldn't change any tests before a fix is made.
> Currently our automated builds are failing due to this.
> I hope andrew gets a chance to check in his fix soon.
> 
> Regards,
> 
> Rajith
> 
> On Tue, Mar 30, 2010 at 7:50 AM,   wrote:
> > Author: robbie
> > Date: Tue Mar 30 11:50:18 2010
> > New Revision: 929095
> >
> > URL: http://svn.apache.org/viewvc?rev=929095&view=rev
> > Log:
> > QPID-2417 , QPID-2418 , QPID-2449 : expand topic testing,
> specifically around the change and unsubscription of durable
> subscriptions
> >
> > Modified:
> >
>  qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/
> ct/DurableSubscriberTest.java
> >
>  qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/
> topic/DurableSubscriptionTest.java
> >    qpid/trunk/qpid/java/test-profiles/Excludes
> >    qpid/trunk/qpid/java/test-profiles/JavaExcludes
> >
> > Modified:
> qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/c
> t/DurableSubscriberTest.java
> > URL:
> http://svn.apache.org/viewvc/qpid/trunk/qpid/java/systests/src/main/jav
> a/org/apache/qpid/test/unit/ct/DurableSubscriberTest.java?rev=929095&r1
> =929094&r2=929095&view=diff
> >
> ===
> ===
> > ---
> qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/c
> t/DurableSubscriberTest.java (original)
> > +++
> qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/c
> t/DurableSubscriberTest.java Tue Mar 30 11:50:18 2010
> > @@ -19,6 +19,10 @@ package org.apache.qpid.test.unit.ct;
> >
> >  import javax.jms.*;
> >
> > +import org.apache.qpid.client.AMQConnection;
> > +import org.apache.qpid.client.AMQQueue;
> > +import org.apache.qpid.client.AMQSession;
> > +import org.apache.qpid.client.AMQTopic;
> >  import org.apache.qpid.test.utils.QpidTestCase;
> >
> >  /**
> > @@ -163,5 +167,301 @@ public class DurableSubscriberTest exten
> >             durConnection2.close();
> >         }
> >     }
> > +
> > +    /**
> > +     * create and register a durable subscriber without a message
> selector and then unsubscribe it
> > +     * create and register a durable subscriber with a message
> selector and then close it
> > +     * restart the broker
> > +     * send matching and non matching messages
> > +     * recreate and register the durable subscriber with a message
> selector
> > +     * verify only the matching messages are received
> > +     */
> > +    public void testDurSubChangedToHaveSelectorThenRestart() throws
> Exception
> > +    {
> > +        if (! isBrokerStorePersistent())
> > +        {
> > +            _logger.warn("Test skipped due to requirement of a
> persistent store");
> > +            return;
> > +        }
> > +
> > +        final String SUB_NAME=getTestQueueName();
> > +
> > +        TopicConnectionFactory factory = getConnectionFactory();
> > +        Topic topic = (Topic)
> getInitialContext().lookup(_topicName);
> > +
> > +        //create and register a durable subscriber then unsubscribe
> it
> > +        TopicConnection durConnection =
> factory.createTopicConnection("guest", "guest");
> > +        TopicSession durSession =
> durConnection.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
> > +     

[jira] Commented: (QPID-2418) Existing durable subscription with selector is not unsubscribed during change to new subscription

2010-03-31 Thread Robbie Gemmell (JIRA)

[ 
https://issues.apache.org/jira/browse/QPID-2418?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12852032#action_12852032
 ] 

Robbie Gemmell commented on QPID-2418:
--

The changes made to DurableSubscriptionTest were not intended to yet expose 
this bug any more than it was, and were deliberately kept short so that they 
wouldnt (the comment is innacurate youll note, as it isnt doing what it was 
originally and I forgot to update that). The new test added in 
DurableSubscriberTest that absolutely would expose it was excluded until it is 
fixed so that automated builds wouldnt be been broken. What I didnt do was run 
the test using the C++ broker as I didnt think I was changing anything of any 
particular note, but I failed to consider that it could behave slightly 
differently due to use of client side selectors rather than the server side 
selectors used by the Java broker. The broker doenst create a new queue, but it 
does change the filters used to select messages meaning that messges never get 
onto the queue which will on the C++ broker, which I imagine is where the test 
now fails. I'll take that into account when updating it.

>  Existing durable subscription with selector is not unsubscribed during 
> change to new subscription
> --
>
> Key: QPID-2418
> URL: https://issues.apache.org/jira/browse/QPID-2418
> Project: Qpid
>  Issue Type: Bug
>  Components: Java Client
>Affects Versions: M4, 0.5, 0.6
>Reporter: Robbie Gemmell
>Assignee: Robbie Gemmell
> Fix For: 0.7
>
> Attachments: 0001-QPID-2418-branch.patch, 0001-QPID-2418-trunk.patch
>
>
> AMQSession.createDurableSubscriber(topic, name, messageSelector, noLocal) 
> does not unsubscribe existing durable subscriptions. Whilst it does check for 
> existing durable subscriptions in use by the client with the same name, it 
> instead simply closes the subscriptions then creates a new one. As a result 
> of not unsubscribing, the queue backing the subscription is not deleted 
> before being used by the updated subscription as it should be (and as happens 
> in the 0_8 and 0_10 subclasses when using durable subscriptions without 
> selectors).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


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



Re: Performance measurement clients using the new API.

2010-03-31 Thread Rafael Schloming

Gordon Sim wrote:

On 03/31/2010 05:41 PM, Alan Conway wrote:

I think we can extend qpid_send and qpid_recv to do most of the things
that perftest and latencytest do. Interested in any ideas on the topic.


I like the approach.


+1


Here's what I propose:

Additional qpid_send options:
--report=Y/N: report sender throughput on exit.
--report-interval=SECS: print throughput report every N seconds.


FYI qpid-bench does this based on # of messages as opposed to time (not 
sure which is preferred or if both make sense in some scenarios).



--timestamp=Y/N: timestamp each message.
--rate=MSGS/SEC: send at this rate, 0 means fast as possible.
--padding=BYTES: add this much padding to messages.
--time-limit=SECS: stop after this time, 0 means no limit.
--max-noreply=N: don't send more than N messages without receiving a 
reply.

Creates a reply queue and sets reply_to on every N/2 messages.


In addition you'd need to configure things like sender/receiver 
capacity, sync/async, etc.


qpid_send currently reads in message content from std::in. This can be 
very useful for ad-hoc tests or scripting different types of test. 
However for performance you would most likely want to avoid any extra 
overhead and have the message content generated by the tool itself.



Additional qpid_recv options:
--report=Y/N: report latency and throughput statistics on exit.
Latency is only calculated for messages with a timestamp.
--report-interval=SECS: print latency and throughput statistics every N
seconds.

New qpid_recv behavior: if reply-to is set, echo the message to that
address.


I could see two different types of useful behaviour here. One as above, 
where you echo the message. Another would simply be to send an empty 
message correlated by correlation-id. E.g. for the case where the 
original message is very large and you only wish the response to 
indicate that it was received (could have received message sie in the 
response message in some way). Of course keeping it simple to begin with 
is also fine!


If we want the flexibility I would suggest putting some sort of opcode 
in the original message that would instruct the receiver how to respond, 
e.g. echo the original message, send an empty (but correlated) message, 
or even send a message with the receiver's current stats in it.


qpid_recv also prints out each message to std::out and again this would 
need to be optional to avoid impacting perf numbers. The python drain 
example has a nice feature where you can specify what aspect of each 
message gets printed. Adding that to qpid_recv would be valuable.



The --max-noreply=N option is a simple form of end-to-end throughput.
The sender sets reply-to on every N/2 messages. It won't send more than
N messages beyond the last message that was replied to. The receiver
replies whenever reply-to is set.

Multiple instances of sender & receiver can be mixed and matched however
you want, to measure e.g. shared queue, pub-sub etc. scenarios. I'm
deliberately avoiding the do-everything swiss army knife approach of
perftest, that results in an overly complex test that is not as flexible
as the separate sender/receiver approach.


One thing that would be useful is to have multiple sessions per 
connection for send/recv. This would be useful even for performance 
testing, though it does complicate the reporting a little.


Overall I'm not sure we should try to cram too much into qpid-send and 
qpid-recv. I think it might make sense to have two sets of utilities 
with the difference being based on whether the utilities themselves 
generate the messages, or whether they're simply used to send/recv 
messages generated outside the utilities. I think the use cases around 
these two scenarios are fairly different.


The things that generate/consume their own content are more oriented 
towards diagnostics/testing/benchmarking, and I would expect to have 
options around frequency, size, type of content, etc, whereas the things 
that send/recv existing content would have more options around reading 
in messages from various formats, writing them out, etc.


I propose thinking in terms of qpid-send/qpid-recv which are basically 
command line versions of the API used to send/recv message content 
generated outside the utility (that content could come by file, 
command-line args, stdin, etc), and then qpid-source/qpid-sink which are 
used as artificial sources/sinks for messages and more oriented towards 
testing/diagnostics/performance.


--Rafael


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



Re: svn commit: r929095 - in /qpid/trunk/qpid/java: systests/src/main/java/org/apache/qpid/test/unit/ct/ systests/src/main/java/org/apache/qpid/test/unit/topic/ test-profiles/

2010-03-31 Thread Rajith Attapattu
Robbie,

The change to the test case is causing the test to fail when run
against the c++ (which should be expected as we have a bug in the Java
client).
However it's passing against the Java broker, so perhaps better to
investigate this.
I suspect the broker is creating a new queue bcos the args list is
different (the selector being different)?

Also I think we shouldn't change any tests before a fix is made.
Currently our automated builds are failing due to this.
I hope andrew gets a chance to check in his fix soon.

Regards,

Rajith

On Tue, Mar 30, 2010 at 7:50 AM,   wrote:
> Author: robbie
> Date: Tue Mar 30 11:50:18 2010
> New Revision: 929095
>
> URL: http://svn.apache.org/viewvc?rev=929095&view=rev
> Log:
> QPID-2417 , QPID-2418 , QPID-2449 : expand topic testing, specifically around 
> the change and unsubscription of durable subscriptions
>
> Modified:
>    
> qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/ct/DurableSubscriberTest.java
>    
> qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/topic/DurableSubscriptionTest.java
>    qpid/trunk/qpid/java/test-profiles/Excludes
>    qpid/trunk/qpid/java/test-profiles/JavaExcludes
>
> Modified: 
> qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/ct/DurableSubscriberTest.java
> URL: 
> http://svn.apache.org/viewvc/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/ct/DurableSubscriberTest.java?rev=929095&r1=929094&r2=929095&view=diff
> ==
> --- 
> qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/ct/DurableSubscriberTest.java
>  (original)
> +++ 
> qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/ct/DurableSubscriberTest.java
>  Tue Mar 30 11:50:18 2010
> @@ -19,6 +19,10 @@ package org.apache.qpid.test.unit.ct;
>
>  import javax.jms.*;
>
> +import org.apache.qpid.client.AMQConnection;
> +import org.apache.qpid.client.AMQQueue;
> +import org.apache.qpid.client.AMQSession;
> +import org.apache.qpid.client.AMQTopic;
>  import org.apache.qpid.test.utils.QpidTestCase;
>
>  /**
> @@ -163,5 +167,301 @@ public class DurableSubscriberTest exten
>             durConnection2.close();
>         }
>     }
> +
> +    /**
> +     * create and register a durable subscriber without a message selector 
> and then unsubscribe it
> +     * create and register a durable subscriber with a message selector and 
> then close it
> +     * restart the broker
> +     * send matching and non matching messages
> +     * recreate and register the durable subscriber with a message selector
> +     * verify only the matching messages are received
> +     */
> +    public void testDurSubChangedToHaveSelectorThenRestart() throws Exception
> +    {
> +        if (! isBrokerStorePersistent())
> +        {
> +            _logger.warn("Test skipped due to requirement of a persistent 
> store");
> +            return;
> +        }
> +
> +        final String SUB_NAME=getTestQueueName();
> +
> +        TopicConnectionFactory factory = getConnectionFactory();
> +        Topic topic = (Topic) getInitialContext().lookup(_topicName);
> +
> +        //create and register a durable subscriber then unsubscribe it
> +        TopicConnection durConnection = 
> factory.createTopicConnection("guest", "guest");
> +        TopicSession durSession = durConnection.createTopicSession(false, 
> Session.AUTO_ACKNOWLEDGE);
> +        TopicSubscriber durSub1 = durSession.createDurableSubscriber(topic, 
> SUB_NAME);
> +        durConnection.start();
> +        durSub1.close();
> +        durSession.unsubscribe(SUB_NAME);
> +        durSession.close();
> +        durConnection.close();
> +
> +        //create and register a durable subscriber with a message selector 
> and then close it
> +        TopicConnection durConnection2 = 
> factory.createTopicConnection("guest", "guest");
> +        TopicSession durSession2 = durConnection2.createTopicSession(false, 
> Session.AUTO_ACKNOWLEDGE);
> +        TopicSubscriber durSub2 = durSession2.createDurableSubscriber(topic, 
> SUB_NAME, "testprop='true'", false);
> +        durConnection2.start();
> +        durSub2.close();
> +        durSession2.close();
> +        durConnection2.close();
> +
> +        //now restart the server
> +        try
> +        {
> +            restartBroker();
> +        }
> +        catch (Exception e)
> +        {
> +            _logger.error("problems restarting broker: " + e);
> +            throw e;
> +        }
> +
> +        //send messages matching and not matching the selector
> +        TopicConnection pubConnection = 
> factory.createTopicConnection("guest", "guest");
> +        TopicSession pubSession = pubConnection.createTopicSession(false, 
> Session.AUTO_ACKNOWLEDGE);
> +        TopicPublisher publisher = pubSession.createPublisher(topic);
> +        for (int i = 0; i < 5; i++)
> +        {
> +            Message message = pubSes

Mina version

2010-03-31 Thread Emmanuel Bourg
Could someone enlighten me about the Mina version currently used in Qpid 
please? I searched through the messages of the list back to 2006 and 
found this:


http://mail-archives.apache.org/mod_mbox/qpid-dev/200612.mbox/%3cc5e632550612010029j3c0beec6p4eeff0aab1d36...@mail.gmail.com%3e

That is, Qpid uses a snapshot version build from the revision 463149 at 
http://svn.apache.org/repos/asf/mina/trunk.


However I also found mention of performance patches that were necessary 
for Qpid. Are they also included in the revision above or were they 
applied separately?


Thank you,

Emmanuel Bourg

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



[jira] Commented: (QPID-2418) Existing durable subscription with selector is not unsubscribed during change to new subscription

2010-03-31 Thread Rajith Attapattu (JIRA)

[ 
https://issues.apache.org/jira/browse/QPID-2418?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12851997#action_12851997
 ] 

Rajith Attapattu commented on QPID-2418:


When investigating the test failure for "testResubscribeWithChangedSelector" in 
the DurableSubscriptionTest, I was a bit shocked to see the amount of code 
duplication.
This may have been due to a merge, but we definitely need to fix this. So thx 
for taking care of this.

I haven't had chance to have a closer look at the patches, but please make sure 
tests pass against both the C++ and Java Broker before committing it.

Also the change made in rev 929095 to the DurableSubscriptionTest.java (method 
testResubscribeWithChangedSelector) is somehow passing for the Java broker.
Bcos we have the bug mentioned in this bug, it should be failing in both 
brokers.
I am not so happy about checking in the change to the test case before a fix is 
committed as this has broken our automated builds.

Perhaps the Java broker is creating a new queue as the arguments list is 
different (the selector being different) ?
Isn't that a bug? Perhaps worthwhile investigating this.

>  Existing durable subscription with selector is not unsubscribed during 
> change to new subscription
> --
>
> Key: QPID-2418
> URL: https://issues.apache.org/jira/browse/QPID-2418
> Project: Qpid
>  Issue Type: Bug
>  Components: Java Client
>Affects Versions: M4, 0.5, 0.6
>Reporter: Robbie Gemmell
>Assignee: Robbie Gemmell
> Fix For: 0.7
>
> Attachments: 0001-QPID-2418-branch.patch, 0001-QPID-2418-trunk.patch
>
>
> AMQSession.createDurableSubscriber(topic, name, messageSelector, noLocal) 
> does not unsubscribe existing durable subscriptions. Whilst it does check for 
> existing durable subscriptions in use by the client with the same name, it 
> instead simply closes the subscriptions then creates a new one. As a result 
> of not unsubscribing, the queue backing the subscription is not deleted 
> before being used by the updated subscription as it should be (and as happens 
> in the 0_8 and 0_10 subclasses when using durable subscriptions without 
> selectors).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


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



Re: Many Mb of doc related tools checked in

2010-03-31 Thread Emmanuel Bourg

Rajith Attapattu a écrit :


I am sorry sir, but Maven is a big no due to the well documented reasons.
You are paying a big price for that convenience :).


I understand you had some troubles in the past with Maven, and 
considering the complexity of the Qpid project I'm not surprised. But 
for the specific purpose of building the documentation I don't think the 
"well documented reasons" apply.




Even if you download it manually it's a one time job.
I don't know why folks are so worried about it.


Because it's a waste of time for anyone interested in building the 
documentation. Because one has to reinstall most of the tool chain on 
every checkout of the project (the Ant build assumes the stylesheets are 
copied in qpid/doc/book/docbook-xsl, and not outside the project tree). 
You do it once on your desktop computer, then once on your laptop, and 
then every time you checkout a different branch. That's definitely not a 
one time job.


Emmanuel Bourg

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



Re: Performance measurement clients using the new API.

2010-03-31 Thread Gordon Sim

On 03/31/2010 05:41 PM, Alan Conway wrote:

I think we can extend qpid_send and qpid_recv to do most of the things
that perftest and latencytest do. Interested in any ideas on the topic.


I like the approach.


Here's what I propose:

Additional qpid_send options:
--report=Y/N: report sender throughput on exit.
--report-interval=SECS: print throughput report every N seconds.
--timestamp=Y/N: timestamp each message.
--rate=MSGS/SEC: send at this rate, 0 means fast as possible.
--padding=BYTES: add this much padding to messages.
--time-limit=SECS: stop after this time, 0 means no limit.
--max-noreply=N: don't send more than N messages without receiving a reply.
Creates a reply queue and sets reply_to on every N/2 messages.


qpid_send currently reads in message content from std::in. This can be 
very useful for ad-hoc tests or scripting different types of test. 
However for performance you would most likely want to avoid any extra 
overhead and have the message content generated by the tool itself.



Additional qpid_recv options:
--report=Y/N: report latency and throughput statistics on exit.
Latency is only calculated for messages with a timestamp.
--report-interval=SECS: print latency and throughput statistics every N
seconds.

New qpid_recv behavior: if reply-to is set, echo the message to that
address.


I could see two different types of useful behaviour here. One as above, 
where you echo the message. Another would simply be to send an empty 
message correlated by correlation-id. E.g. for the case where the 
original message is very large and you only wish the response to 
indicate that it was received (could have received message sie in the 
response message in some way). Of course keeping it simple to begin with 
is also fine!


qpid_recv also prints out each message to std::out and again this would 
need to be optional to avoid impacting perf numbers. The python drain 
example has a nice feature where you can specify what aspect of each 
message gets printed. Adding that to qpid_recv would be valuable.



The --max-noreply=N option is a simple form of end-to-end throughput.
The sender sets reply-to on every N/2 messages. It won't send more than
N messages beyond the last message that was replied to. The receiver
replies whenever reply-to is set.

Multiple instances of sender & receiver can be mixed and matched however
you want, to measure e.g. shared queue, pub-sub etc. scenarios. I'm
deliberately avoiding the do-everything swiss army knife approach of
perftest, that results in an overly complex test that is not as flexible
as the separate sender/receiver approach.


One thing that would be useful is to have multiple sessions per 
connection for send/recv. This would be useful even for performance 
testing, though it does complicate the reporting a little.



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




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



[jira] Resolved: (QPID-2477) std::cout in agent not used anymore

2010-03-31 Thread Gordon Sim (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-2477?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Gordon Sim resolved QPID-2477.
--

Resolution: Fixed

> std::cout in agent not used anymore
> ---
>
> Key: QPID-2477
> URL: https://issues.apache.org/jira/browse/QPID-2477
> Project: Qpid
>  Issue Type: Improvement
>  Components: C++ Broker
>Affects Versions: 0.7
> Environment: Fedora Rawhide, Linux 2.6.34 x86_64, ... not important 
> here
>Reporter: Jan Sarenik
>Priority: Trivial
> Fix For: 0.7
>
> Attachments: qpid-agent-cout.diff
>
>
> See attached one-liner. It removes the obsolete line.
> (All cout calls were removed from C++ agent in r727265)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


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



Re: Many Mb of doc related tools checked in

2010-03-31 Thread Rajith Attapattu
On Wed, Mar 31, 2010 at 12:53 PM, Emmanuel Bourg  wrote:
> Jonathan Robie a écrit :
>
>> I think Maven is out, because people have been pretty loud about not
>> wanting Yet Another Build System.
>
> In this case Maven isn't used as a build system, it's just a convenient tool
> to build the documentation on any platform.

I am sorry sir, but Maven is a big no due to the well documented reasons.
You are paying a big price for that convenience :).

>
>> P.S. Did you run into problems trying to build on Windows using the tools
>> mentioned in README.txt?
>
> Certainly, yum doesn't work on Windows ;) Installing the tool chain manually
> is really a pain, I didn't try since I knew a simpler alternative.

Even if you download it manually it's a one time job.
I don't know why folks are so worried about it.

The price you pay for the simple alternative is way too much :).

> I don't want to disrupt your habits, keep the make file as the main way to
> build the documentation. I would just suggest adding a simple alternative
> for the developers that aren't using the reference system.
>
> Emmanuel Bourg
>
> -
> Apache Qpid - AMQP Messaging Implementation
> Project:      http://qpid.apache.org
> Use/Interact: mailto:dev-subscr...@qpid.apache.org
>
>



-- 
Regards,

Rajith Attapattu
Red Hat
http://rajith.2rlabs.com/

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



Re: Many Mb of doc related tools checked in

2010-03-31 Thread Emmanuel Bourg

Jonathan Robie a écrit :

I think Maven is out, because people have been pretty loud about not 
wanting Yet Another Build System.


In this case Maven isn't used as a build system, it's just a convenient 
tool to build the documentation on any platform.



P.S. Did you run into problems trying to build on Windows using the 
tools mentioned in README.txt?


Certainly, yum doesn't work on Windows ;) Installing the tool chain 
manually is really a pain, I didn't try since I knew a simpler alternative.


I don't want to disrupt your habits, keep the make file as the main way 
to build the documentation. I would just suggest adding a simple 
alternative for the developers that aren't using the reference system.


Emmanuel Bourg

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



Re: Size of the Java client

2010-03-31 Thread Joshua Kramer


would expect a message queue client to be not bigger than ~500KB 
(dependencies included and fully compressed with pack200+lzma)


500KB would be nice.  Some of my "science experiments" target Java-based 
platforms with 1MB of Flash and 1MB of RAM.  For now I open sockets to a 
server, and the server in turn does any queue manaement things as needed.


http://www.maxim-ic.com/products/microcontrollers/tini/

Cheers,
-JK


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



Performance measurement clients using the new API.

2010-03-31 Thread Alan Conway
I think we can extend qpid_send and qpid_recv to do most of the things that 
perftest and latencytest do. Interested in any ideas on the topic.


Here's what I propose:

Additional qpid_send options:
--report=Y/N: report sender throughput on exit.
--report-interval=SECS: print throughput report every N seconds.
--timestamp=Y/N: timestamp each message.
--rate=MSGS/SEC: send at this rate, 0 means fast as possible.
--padding=BYTES: add this much padding to messages.
--time-limit=SECS: stop after this time, 0 means no limit.
--max-noreply=N: don't send more than N messages without receiving a reply.
  Creates a reply queue and sets reply_to on every N/2 messages.

Additional qpid_recv options:
--report=Y/N: report latency and throughput statistics on exit.
  Latency is only calculated for messages with a timestamp.
--report-interval=SECS: print latency and throughput statistics every N seconds.

New qpid_recv behavior: if reply-to is set, echo the message to that address.


The --max-noreply=N option is a simple form of end-to-end throughput. The sender 
sets reply-to on every N/2 messages. It won't send more than N messages beyond 
the last message that was replied to. The receiver replies whenever reply-to is set.


Multiple instances of sender & receiver can be mixed and matched however you 
want, to measure e.g. shared queue, pub-sub etc. scenarios. I'm deliberately 
avoiding the do-everything swiss army knife approach of perftest, that results 
in an overly complex test that is not as flexible as the separate 
sender/receiver approach.



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



Re: Many Mb of doc related tools checked in

2010-03-31 Thread Jonathan Robie

On 03/31/2010 12:18 PM, Emmanuel Bourg wrote:
That's still better than installing the tool chain manually, but that 
sounds like a lot of troubles for something that is already done with 
a short Maven file.


I'm more than happy to do what the group wants if  (1) the group can all 
want the same thing, and (2) it's reasonably simple.


I think Maven is out, because people have been pretty loud about not 
wanting Yet Another Build System.


Jonathan

P.S. Did you run into problems trying to build on Windows using the 
tools mentioned in README.txt?


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



Re: Many Mb of doc related tools checked in

2010-03-31 Thread Jonathan Robie

On 03/31/2010 12:13 PM, Steve Huston wrote:

I should probably go look at what's checked in first, but...

Is there a defined set of tools for building the docs? Is there a reason
you can't put a README there with a list of what's needed, and let
people get it whatever way works best?
   


The README is here:

https://svn.apache.org/repos/asf/qpid/trunk/qpid/doc/book/README.txt

The tools at least allegedly all work on Windows, I have not tried them 
on Windows (I don't have a Windows box).  Perhaps you could have a go 
and see if there are issues with this tool chain on Windows?


Jonathan

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



Re: Many Mb of doc related tools checked in

2010-03-31 Thread Emmanuel Bourg

Jonathan Robie a écrit :
We could move back to the earlier tool chain (ant, Saxon, Xerces, 
DocBook DTDs, DocBook stylesheets.


Instead of checking these things into subdirectories, I could put them 
in a zip file in my people.apache.org account, and create an ant task 
that retrieves them and unzips them into the right subdirectories.


For people like Rafi who do not want multiple copies on their system, I 
could write a shell script that creates symbolic links to the standard 
installed locations. People can modify this as needed if they have these 
things installed elsewhere.


That's the best I've thought of so far.

Thoughts?

Jonathan


That's still better than installing the tool chain manually, but that 
sounds like a lot of troubles for something that is already done with a 
short Maven file.


Emmanuel Bourg

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



RE: Many Mb of doc related tools checked in

2010-03-31 Thread Steve Huston
Hi Jonathan,

> We could move back to the earlier tool chain (ant, Saxon, Xerces, 
> DocBook DTDs, DocBook stylesheets.

I'm hoping you can help me out here... When I see documentation sources
checked in and mention of a way to build them, I think there must be
some defined tools that build the docs. Analogous to a C++ compiler,
linker, etc. And since I don't need to worry about downloading or
committing a C++ compiler to svn, I'm confused about why this issue
keeps coming up.

> Instead of checking these things into subdirectories, I could 
> put them 
> in a zip file in my people.apache.org account, and create an ant task 
> that retrieves them and unzips them into the right subdirectories.
> 
> For people like Rafi who do not want multiple copies on their 
> system, I 
> could write a shell script that creates symbolic links to the 
> standard 
> installed locations. People can modify this as needed if they 
> have these 
> things installed elsewhere.
> 
> That's the best I've thought of so far.
> 
> Thoughts?

I should probably go look at what's checked in first, but...

Is there a defined set of tools for building the docs? Is there a reason
you can't put a README there with a list of what's needed, and let
people get it whatever way works best?

I would like to be able to work on the documentation at some point, so I
am interested in getting this worked out.

Thanks,
-Steve


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



Re: Many Mb of doc related tools checked in

2010-03-31 Thread Jonathan Robie
We could move back to the earlier tool chain (ant, Saxon, Xerces, 
DocBook DTDs, DocBook stylesheets.


Instead of checking these things into subdirectories, I could put them 
in a zip file in my people.apache.org account, and create an ant task 
that retrieves them and unzips them into the right subdirectories.


For people like Rafi who do not want multiple copies on their system, I 
could write a shell script that creates symbolic links to the standard 
installed locations. People can modify this as needed if they have these 
things installed elsewhere.


That's the best I've thought of so far.

Thoughts?

Jonathan

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



[jira] Updated: (QPID-2418) Existing durable subscription with selector is not unsubscribed during change to new subscription

2010-03-31 Thread Andrew Kennedy (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-2418?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrew Kennedy updated QPID-2418:
-

Attachment: 0001-QPID-2418-trunk.patch
0001-QPID-2418-branch.patch

>  Existing durable subscription with selector is not unsubscribed during 
> change to new subscription
> --
>
> Key: QPID-2418
> URL: https://issues.apache.org/jira/browse/QPID-2418
> Project: Qpid
>  Issue Type: Bug
>  Components: Java Client
>Affects Versions: M4, 0.5, 0.6
>Reporter: Robbie Gemmell
>Assignee: Robbie Gemmell
> Fix For: 0.7
>
> Attachments: 0001-QPID-2418-branch.patch, 0001-QPID-2418-trunk.patch
>
>
> AMQSession.createDurableSubscriber(topic, name, messageSelector, noLocal) 
> does not unsubscribe existing durable subscriptions. Whilst it does check for 
> existing durable subscriptions in use by the client with the same name, it 
> instead simply closes the subscriptions then creates a new one. As a result 
> of not unsubscribing, the queue backing the subscription is not deleted 
> before being used by the updated subscription as it should be (and as happens 
> in the 0_8 and 0_10 subclasses when using durable subscriptions without 
> selectors).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


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



[jira] Commented: (QPID-2476) Complete ACL implementation for 0-10 code path

2010-03-31 Thread Rajith Attapattu (JIRA)

[ 
https://issues.apache.org/jira/browse/QPID-2476?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12851860#action_12851860
 ] 

Rajith Attapattu commented on QPID-2476:


Andrew,

Great to see you working on the ACL stuff.
In view of keeping functionality/behaviour the same btw C++ and Java Broker, I 
would appreciate if the above items are discussed on the mailing list.
I am also planning to work on some of the items listed above.
I look forward to discussing these items on the list with you.

Regards,

Rajith 

> Complete ACL implementation for 0-10 code path
> --
>
> Key: QPID-2476
> URL: https://issues.apache.org/jira/browse/QPID-2476
> Project: Qpid
>  Issue Type: New Feature
>  Components: Java Broker
>Affects Versions: 0.7
>Reporter: Andrew Kennedy
> Fix For: 0.7
>
>   Original Estimate: 336h
>  Remaining Estimate: 336h
>
> Complete ACL implementation for 0-10 code path, providing an ACLv2 
> implementation that covers the following features/requirements:
> - Best practice security design
> - Support for roles/groups
> - Appropriate for standard stores for authorisation credentials (e.g. LDAP, 
> Kerberos)
> - Expressable as XML
> - Easy to store/backup/extract ACL config
> - Exception handling catching at point of ACL application and return to 
> client via Connection ExceptionListener with correct error code, log failure 
> in broker
> - No significant performance cost on publish, permissions to be cached
> - Security handled at correct level of abstraction internally
> - Interoperability with existing ACLv2

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


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



[jira] Updated: (QPID-2418) Existing durable subscription with selector is not unsubscribed during change to new subscription

2010-03-31 Thread Andrew Kennedy (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-2418?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrew Kennedy updated QPID-2418:
-

Attachment: (was: 0001-QPID-2418-trunk.patch)

>  Existing durable subscription with selector is not unsubscribed during 
> change to new subscription
> --
>
> Key: QPID-2418
> URL: https://issues.apache.org/jira/browse/QPID-2418
> Project: Qpid
>  Issue Type: Bug
>  Components: Java Client
>Affects Versions: M4, 0.5, 0.6
>Reporter: Robbie Gemmell
>Assignee: Robbie Gemmell
> Fix For: 0.7
>
>
> AMQSession.createDurableSubscriber(topic, name, messageSelector, noLocal) 
> does not unsubscribe existing durable subscriptions. Whilst it does check for 
> existing durable subscriptions in use by the client with the same name, it 
> instead simply closes the subscriptions then creates a new one. As a result 
> of not unsubscribing, the queue backing the subscription is not deleted 
> before being used by the updated subscription as it should be (and as happens 
> in the 0_8 and 0_10 subclasses when using durable subscriptions without 
> selectors).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


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



[jira] Updated: (QPID-2418) Existing durable subscription with selector is not unsubscribed during change to new subscription

2010-03-31 Thread Andrew Kennedy (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-2418?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrew Kennedy updated QPID-2418:
-

Attachment: (was: 0001-QPID-2418-branch.patch)

>  Existing durable subscription with selector is not unsubscribed during 
> change to new subscription
> --
>
> Key: QPID-2418
> URL: https://issues.apache.org/jira/browse/QPID-2418
> Project: Qpid
>  Issue Type: Bug
>  Components: Java Client
>Affects Versions: M4, 0.5, 0.6
>Reporter: Robbie Gemmell
>Assignee: Robbie Gemmell
> Fix For: 0.7
>
> Attachments: 0001-QPID-2418-trunk.patch
>
>
> AMQSession.createDurableSubscriber(topic, name, messageSelector, noLocal) 
> does not unsubscribe existing durable subscriptions. Whilst it does check for 
> existing durable subscriptions in use by the client with the same name, it 
> instead simply closes the subscriptions then creates a new one. As a result 
> of not unsubscribing, the queue backing the subscription is not deleted 
> before being used by the updated subscription as it should be (and as happens 
> in the 0_8 and 0_10 subclasses when using durable subscriptions without 
> selectors).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


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



[jira] Commented: (QPID-2418) Existing durable subscription with selector is not unsubscribed during change to new subscription

2010-03-31 Thread Robbie Gemmell (JIRA)

[ 
https://issues.apache.org/jira/browse/QPID-2418?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12851830#action_12851830
 ] 

Robbie Gemmell commented on QPID-2418:
--

On line 1086 (after patching) this code segment needs updated: 
   if (_subscriptionTopics.containsKey(name) && 
_subscriptionSelectors.containsKey(name))
{
if (!_subscriptionTopics.get(name).equals(topic) || 
!_subscriptionSelectors.get(name).equals(messageSelector))
{
_logger.info("Unsubscribing from topic " + topic + " with 
subscription exchange " + name
+ " and selector " + messageSelector);
unsubscribe(name);
}
}

If the subscription name has been seen before but used without a selector, then 
in the outer if statement the first test will success but the second will fail, 
causing the inner if statement to detect subscription change not to be 
evaluated. However, if the new subscription with reused name happens to be 
adding a selector then this should be classified as a selector change (from no 
selector) and cause unsubscription before proceeding.

Also, there is possibility of deadlock when creation of a new durable 
subscriber occurs with the same subscription name as an existing open 
subscriber, which will cause unsubscribe+closure of the old subscriber. The 
create method will hold the new lock added, but closing the subscription will 
contact the broker, which will reply and then a different thread will execute 
the returned BasicCancelOK method and try to aquire the lock in 
deregisterConsumer() in order to complete the closure, causing the first thread 
executing the close to timeout and throw an exception. Looking at the map 
usages it seems there is actually no need to acquire the same lock in 
deregisterConsumer(), only a need to govern access to the subscriptions and 
reverseSubscriptionMaps, which could be achieved using a second lock that 
doesnt encompass the subscriber.close() operation.

>  Existing durable subscription with selector is not unsubscribed during 
> change to new subscription
> --
>
> Key: QPID-2418
> URL: https://issues.apache.org/jira/browse/QPID-2418
> Project: Qpid
>  Issue Type: Bug
>  Components: Java Client
>Affects Versions: M4, 0.5, 0.6
>Reporter: Robbie Gemmell
>Assignee: Robbie Gemmell
> Fix For: 0.7
>
> Attachments: 0001-QPID-2418-branch.patch, 0001-QPID-2418-trunk.patch
>
>
> AMQSession.createDurableSubscriber(topic, name, messageSelector, noLocal) 
> does not unsubscribe existing durable subscriptions. Whilst it does check for 
> existing durable subscriptions in use by the client with the same name, it 
> instead simply closes the subscriptions then creates a new one. As a result 
> of not unsubscribing, the queue backing the subscription is not deleted 
> before being used by the updated subscription as it should be (and as happens 
> in the 0_8 and 0_10 subclasses when using durable subscriptions without 
> selectors).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


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



[jira] Updated: (QPID-2477) std::cout in agent not used anymore

2010-03-31 Thread Jan Sarenik (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-2477?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jan Sarenik updated QPID-2477:
--

Description: 
See attached one-liner. It removes the obsolete line.
(All cout calls were removed from C++ agent in r727265)

  was:
See attached patch. It removes the obsolete line.
(All cout calls were removed from C++ agent in r727265)


> std::cout in agent not used anymore
> ---
>
> Key: QPID-2477
> URL: https://issues.apache.org/jira/browse/QPID-2477
> Project: Qpid
>  Issue Type: Improvement
>  Components: C++ Broker
>Affects Versions: 0.7
> Environment: Fedora Rawhide, Linux 2.6.34 x86_64, ... not important 
> here
>Reporter: Jan Sarenik
>Priority: Trivial
> Fix For: 0.7
>
> Attachments: qpid-agent-cout.diff
>
>
> See attached one-liner. It removes the obsolete line.
> (All cout calls were removed from C++ agent in r727265)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


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



[jira] Updated: (QPID-2477) std::cout in agent not used anymore

2010-03-31 Thread Jan Sarenik (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-2477?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jan Sarenik updated QPID-2477:
--

Attachment: qpid-agent-cout.diff

> std::cout in agent not used anymore
> ---
>
> Key: QPID-2477
> URL: https://issues.apache.org/jira/browse/QPID-2477
> Project: Qpid
>  Issue Type: Improvement
>  Components: C++ Broker
>Affects Versions: 0.7
> Environment: Fedora Rawhide, Linux 2.6.34 x86_64, ... not important 
> here
>Reporter: Jan Sarenik
>Priority: Trivial
> Fix For: 0.7
>
> Attachments: qpid-agent-cout.diff
>
>
> See attached patch. It removes the obsolete line.
> (All cout calls were removed from C++ agent in r727265)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


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



[jira] Created: (QPID-2477) std::cout in agent not used anymore

2010-03-31 Thread Jan Sarenik (JIRA)
std::cout in agent not used anymore
---

 Key: QPID-2477
 URL: https://issues.apache.org/jira/browse/QPID-2477
 Project: Qpid
  Issue Type: Improvement
  Components: C++ Broker
Affects Versions: 0.7
 Environment: Fedora Rawhide, Linux 2.6.34 x86_64, ... not important 
here
Reporter: Jan Sarenik
Priority: Trivial
 Fix For: 0.7
 Attachments: qpid-agent-cout.diff

See attached patch. It removes the obsolete line.
(All cout calls were removed from C++ agent in r727265)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


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



[jira] Commented: (QPID-2360) declaring virtualhost level firewall configuration in virtualhosts.xml leads to NPE on startup

2010-03-31 Thread Robbie Gemmell (JIRA)

[ 
https://issues.apache.org/jira/browse/QPID-2360?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12851798#action_12851798
 ] 

Robbie Gemmell commented on QPID-2360:
--

Patches were commited in revisions 929136 and 929138. The commit log statement 
was incorrect at the time, but has since been updated with the correct issue 
numbers.

> declaring virtualhost level firewall configuration in virtualhosts.xml leads 
> to NPE on startup
> --
>
> Key: QPID-2360
> URL: https://issues.apache.org/jira/browse/QPID-2360
> Project: Qpid
>  Issue Type: Bug
>  Components: Java Broker
>Affects Versions: 0.6
>Reporter: Robbie Gemmell
>Assignee: Robbie Gemmell
> Fix For: 0.7
>
> Attachments: 0001-QPID-2630-QPID-2631-branch.patch, 
> 0001-QPID-2630-QPID-2631-trunk.patch
>
>
> Declaring virtualhost level firewall configuration in virtualhosts.xml leads 
> to NPE on startup. 
> After moving the same configuration into config.xml the broker then loads ok 
> and the configuration works as expected.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


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



[jira] Updated: (QPID-2418) Existing durable subscription with selector is not unsubscribed during change to new subscription

2010-03-31 Thread Andrew Kennedy (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-2418?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrew Kennedy updated QPID-2418:
-

Attachment: 0001-QPID-2418-trunk.patch
0001-QPID-2418-branch.patch

>  Existing durable subscription with selector is not unsubscribed during 
> change to new subscription
> --
>
> Key: QPID-2418
> URL: https://issues.apache.org/jira/browse/QPID-2418
> Project: Qpid
>  Issue Type: Bug
>  Components: Java Client
>Affects Versions: M4, 0.5, 0.6
>Reporter: Robbie Gemmell
>Assignee: Robbie Gemmell
> Fix For: 0.7
>
> Attachments: 0001-QPID-2418-branch.patch, 0001-QPID-2418-trunk.patch
>
>
> AMQSession.createDurableSubscriber(topic, name, messageSelector, noLocal) 
> does not unsubscribe existing durable subscriptions. Whilst it does check for 
> existing durable subscriptions in use by the client with the same name, it 
> instead simply closes the subscriptions then creates a new one. As a result 
> of not unsubscribing, the queue backing the subscription is not deleted 
> before being used by the updated subscription as it should be (and as happens 
> in the 0_8 and 0_10 subclasses when using durable subscriptions without 
> selectors).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


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



[jira] Updated: (QPID-2418) Existing durable subscription with selector is not unsubscribed during change to new subscription

2010-03-31 Thread Andrew Kennedy (JIRA)

 [ 
https://issues.apache.org/jira/browse/QPID-2418?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrew Kennedy updated QPID-2418:
-

Attachment: (was: 0001-QPID-2418-trunk.patch)

>  Existing durable subscription with selector is not unsubscribed during 
> change to new subscription
> --
>
> Key: QPID-2418
> URL: https://issues.apache.org/jira/browse/QPID-2418
> Project: Qpid
>  Issue Type: Bug
>  Components: Java Client
>Affects Versions: M4, 0.5, 0.6
>Reporter: Robbie Gemmell
>Assignee: Robbie Gemmell
> Fix For: 0.7
>
>
> AMQSession.createDurableSubscriber(topic, name, messageSelector, noLocal) 
> does not unsubscribe existing durable subscriptions. Whilst it does check for 
> existing durable subscriptions in use by the client with the same name, it 
> instead simply closes the subscriptions then creates a new one. As a result 
> of not unsubscribing, the queue backing the subscription is not deleted 
> before being used by the updated subscription as it should be (and as happens 
> in the 0_8 and 0_10 subclasses when using durable subscriptions without 
> selectors).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


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



[jira] Commented: (QPID-2473) current libraries: new options needed to link with

2010-03-31 Thread Jan Sarenik (JIRA)

[ 
https://issues.apache.org/jira/browse/QPID-2473?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12851784#action_12851784
 ] 

Jan Sarenik commented on QPID-2473:
---

Building with CMake does not help either...

[ 79%] Built target ssl
[ 79%] Built target sslconnector
[ 80%] Built target watchdog
[ 80%] Building CXX object src/CMakeFiles/xml.dir/qpid/xml/XmlExchange.o
/var/tmp/jasan/qpid-20100330/cpp/src/qpid/xml/XmlExchange.cpp: In member 
function 'bool qpid::broker::XmlExchange::matches(boost::shared_ptr&, 
qpid::broker::Deliverable&, const qpid::framing::FieldTable*, bool)':
/var/tmp/jasan/qpid-20100330/cpp/src/qpid/xml/XmlExchange.cpp:192: error: 
'class ResultImpl' has no member named 'getEffectiveBooleanValue'
make[2]: *** [src/CMakeFiles/xml.dir/qpid/xml/XmlExchange.o] Error 1
make[1]: *** [src/CMakeFiles/xml.dir/all] Error 2
make: *** [all] Error 2

cmake-2.8.1-0.2.rc5.fc14.x86_64
xqilla-devel-2.2.3-7.fc14.x86_64
xerces-c-devel-3.0.1-16.fc13.x86_64

> current libraries: new options needed to link with
> --
>
> Key: QPID-2473
> URL: https://issues.apache.org/jira/browse/QPID-2473
> Project: Qpid
>  Issue Type: Bug
>  Components: C++ Broker
>Affects Versions: 0.7
> Environment: Linux slanina.virtual 2.6.34-0.16.rc2.git0.fc14.x86_64 
> #1 SMP Tue Mar 23 02:02:52 UTC 2010 x86_64 x86_64 x86_64 GNU/Linux
> fedora-release-14-0.4.noarch (Rawhide x86_64)
> glibc-2.11.90-16.x86_64
> gcc-4.4.3-13.fc14.x86_64
> gcc-c++-4.4.3-13.fc14.x86_64
> boost-1.41.0-7.fc13.x86_64
>Reporter: Jan Sarenik
>Assignee: Gordon Sim
> Attachments: qpid-rawhide.diff
>
>
> The little attached patch is vital to make current trunk
> (r928701) compile on Fedora Rawhide with Boost 1.41.0.
> The other line adds libpthread linking option. It works
> but you may want to add it elsewhere if you choose
> to do so.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


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



[jira] Commented: (QPID-2473) current libraries: new options needed to link with

2010-03-31 Thread Jan Sarenik (JIRA)

[ 
https://issues.apache.org/jira/browse/QPID-2473?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12851785#action_12851785
 ] 

Jan Sarenik commented on QPID-2473:
---

And when I uninstall xqilla and xerces, I am getting this:

[ 99%] Building CXX object 
src/tests/CMakeFiles/cluster_test.dir/PartialFailure.o
Linking CXX executable unit_test
[100%] Building CXX object 
src/tests/CMakeFiles/cluster_test.dir/ClusterFailover.o
[100%] Built target unit_test
[100%] Building CXX object 
src/tests/CMakeFiles/cluster_test.dir/InitialStatusMap.o
[100%] Building CXX object src/tests/CMakeFiles/cluster_test.dir/StoreStatus.o
Linking CXX executable cluster_test
/usr/bin/ld: CMakeFiles/cluster_test.dir/StoreStatus.o: undefined reference to 
symbol 'boost::system::get_system_category()'
/usr/bin/ld: note: 'boost::system::get_system_category()' is defined in DSO 
/usr/lib64/libboost_system-mt.so.1.41.0 so try adding it to the linker command 
line
/usr/lib64/libboost_system-mt.so.1.41.0: could not read symbols: Invalid 
operation
collect2: ld returned 1 exit status
make[2]: *** [src/tests/cluster_test] Error 1
make[1]: *** [src/tests/CMakeFiles/cluster_test.dir/all] Error 2
make: *** [all] Error 2


> current libraries: new options needed to link with
> --
>
> Key: QPID-2473
> URL: https://issues.apache.org/jira/browse/QPID-2473
> Project: Qpid
>  Issue Type: Bug
>  Components: C++ Broker
>Affects Versions: 0.7
> Environment: Linux slanina.virtual 2.6.34-0.16.rc2.git0.fc14.x86_64 
> #1 SMP Tue Mar 23 02:02:52 UTC 2010 x86_64 x86_64 x86_64 GNU/Linux
> fedora-release-14-0.4.noarch (Rawhide x86_64)
> glibc-2.11.90-16.x86_64
> gcc-4.4.3-13.fc14.x86_64
> gcc-c++-4.4.3-13.fc14.x86_64
> boost-1.41.0-7.fc13.x86_64
>Reporter: Jan Sarenik
>Assignee: Gordon Sim
> Attachments: qpid-rawhide.diff
>
>
> The little attached patch is vital to make current trunk
> (r928701) compile on Fedora Rawhide with Boost 1.41.0.
> The other line adds libpthread linking option. It works
> but you may want to add it elsewhere if you choose
> to do so.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


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



[jira] Created: (QPID-2476) Complete ACL implementation for 0-10 code path

2010-03-31 Thread Andrew Kennedy (JIRA)
Complete ACL implementation for 0-10 code path
--

 Key: QPID-2476
 URL: https://issues.apache.org/jira/browse/QPID-2476
 Project: Qpid
  Issue Type: New Feature
  Components: Java Broker
Affects Versions: 0.7
Reporter: Andrew Kennedy
 Fix For: 0.7


Complete ACL implementation for 0-10 code path, providing an ACLv2 
implementation that covers the following features/requirements:
- Best practice security design
- Support for roles/groups
- Appropriate for standard stores for authorisation credentials (e.g. LDAP, 
Kerberos)
- Expressable as XML
- Easy to store/backup/extract ACL config
- Exception handling catching at point of ACL application and return to client 
via Connection ExceptionListener with correct error code, log failure in broker
- No significant performance cost on publish, permissions to be cached
- Security handled at correct level of abstraction internally
- Interoperability with existing ACLv2

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


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