I agree we should be checking all code against both brokers... but I
think it will soon become unreasonable to expect that before every
checkin we test all combinations.

At the moment we *should* be checking the following scenarios on a
Java client checkin:

Java InVM broker
Java External broker AMQP 0-8/9/9-1 protocols (these should really be
three separate test runs)
Java External broker AMQP 0-10 protocol
C++ External broker AMQP 0-10 protocol

In addition some tests may perform differently when there is a
persistent store attached, or when the broker is run on alternative
operating systems, etc.

Add in future work to add 1-0 protocol support to both brokers, and
soon you are starting to look at 24 hours of test runs before any
checkin - which I don't think is reasonable.

Moreover the C++ broker is not portable to all operating systems,
which is a severe obstacle if a Java programmer wishes to work on an
operating system other than Linux (and at a stretch Windows).

My own view is that on checkin we should need only to be running
*unit* tests (which are in rather short supply to be fair).  We should
have a CI environment where *system* / *integration* tests are being
run constantly with all possible profiles being tested.  IMHO unit
tests for the client should not be requiring a broker of any kind -
broker functionality would be mocked up as part of the testing
suite.... however there'd need to be a fair amount of work to get to
that point.

The highest priority for me would be looking to see if we can get a
shared CI environment running on Apache which reported failures to the
list.

-- Rob

On 26 July 2010 16:28, Rajith Attapattu <rajit...@gmail.com> wrote:
> Andrew,
>
> Have you tested this change with the C++ test profiles ?
> Anytime the 0-10 code path is changed, please make sure to test with
> the C++ test profiles.
>
> For example a recent checkin cause the JMSProperty test to fail (I
> believe in all test profiles).
> While it's understandable that humans make mistakes, it's important we
> ensure that the builds don't break.
>
> Rajith
>
> On Mon, Jul 26, 2010 at 9:56 AM,  <grk...@apache.org> wrote:
>> Author: grkvlt
>> Date: Mon Jul 26 13:56:52 2010
>> New Revision: 979283
>>
>> URL: http://svn.apache.org/viewvc?rev=979283&view=rev
>> Log:
>> QPID-2586: Give Client 0-10 close semantics not detach
>>
>> Added a sessionRequestTimeout handler that sets expiry and responds with a
>> sessionTimeout, and makes sessionTimeout set expiry appropriately also. On
>> attach uses the expiry provided, rather than forcing a value of 0.
>>
>> Modified:
>>    
>> qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/Session.java
>>    
>> qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionDelegate.java
>>
>> Modified: 
>> qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/Session.java
>> URL: 
>> http://svn.apache.org/viewvc/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/Session.java?rev=979283&r1=979282&r2=979283&view=diff
>> ==============================================================================
>> --- 
>> qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/Session.java
>>  (original)
>> +++ 
>> qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/Session.java
>>  Mon Jul 26 13:56:52 2010
>> @@ -237,9 +237,7 @@ public class Session extends SessionInvo
>>     {
>>         initReceiver();
>>         sessionAttach(name.getBytes());
>> -        // XXX: when the broker and client support full session
>> -        // recovery we should use expiry as the requested timeout
>> -        sessionRequestTimeout(0);
>> +        sessionRequestTimeout(expiry);
>>     }
>>
>>     void resume()
>>
>> Modified: 
>> qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionDelegate.java
>> URL: 
>> http://svn.apache.org/viewvc/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionDelegate.java?rev=979283&r1=979282&r2=979283&view=diff
>> ==============================================================================
>> --- 
>> qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionDelegate.java
>>  (original)
>> +++ 
>> qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionDelegate.java
>>  Mon Jul 26 13:56:52 2010
>> @@ -57,6 +57,12 @@ public class SessionDelegate
>>         log.warn("UNHANDLED: [%s] %s", ssn, method);
>>     }
>>
>> +   �...@override public void sessionRequestTimeout(Session ssn, 
>> SessionRequestTimeout t)
>> +    {
>> +        ssn.setExpiry(t.getTimeout());
>> +        ssn.sessionTimeout(t.getTimeout());
>> +    }
>> +
>>     @Override public void sessionAttached(Session ssn, SessionAttached atc)
>>     {
>>         ssn.setState(Session.State.OPEN);
>> @@ -64,9 +70,7 @@ public class SessionDelegate
>>
>>     @Override public void sessionTimeout(Session ssn, SessionTimeout t)
>>     {
>> -        // XXX: we ignore this right now, we should uncomment this
>> -        // when full session resume is supported:
>> -        // ssn.setExpiry(t.getTimeout());
>> +        ssn.setExpiry(t.getTimeout());
>>     }
>>
>>     @Override public void sessionCompleted(Session ssn, SessionCompleted cmp)
>>
>>
>>
>> ---------------------------------------------------------------------
>> Apache Qpid - AMQP Messaging Implementation
>> Project:      http://qpid.apache.org
>> Use/Interact: mailto:commits-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
>
>

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

Reply via email to