Hi Rajith,

Can you run the straight java profile on thi stest case please
'testLoadingFromPropertiesFile'

It has been failing in the local CI:

        
The new addressing based sytanx is not supported for AMQP 0-8/0-9 versions


        
java.lang.UnsupportedOperationException: The new addressing based
sytanx is not supported for AMQP 0-8/0-9 versions
        at 
org.apache.qpid.client.AMQSession_0_8.handleAddressBasedDestination(AMQSession_0_8.java:597)
        at 
org.apache.qpid.client.AMQSession.registerConsumer(AMQSession.java:2606)
        at org.apache.qpid.client.AMQSession.access$500(AMQSession.java:95)
        at org.apache.qpid.client.AMQSession$4.execute(AMQSession.java:1809)
        at org.apache.qpid.client.AMQSession$4.execute(AMQSession.java:1775)
        at 
org.apache.qpid.client.AMQConnectionDelegate_8_0.executeRetrySupport(AMQConnectionDelegate_8_0.java:291)
        at 
org.apache.qpid.client.AMQConnection.executeRetrySupport(AMQConnection.java:765)
        at 
org.apache.qpid.client.failover.FailoverRetrySupport.execute(FailoverRetrySupport.java:102)
        at 
org.apache.qpid.client.AMQSession.createConsumerImpl(AMQSession.java:1773)
        at org.apache.qpid.client.AMQSession.createConsumer(AMQSession.java:921)
        at 
org.apache.qpid.test.client.destination.AddressBasedDestinationTest.testLoadingFromPropertiesFile(AddressBasedDestinationTest.java:424)

Regards

Martin


On 25 June 2010 14:51,  <[email protected]> wrote:
> Author: rajith
> Date: Fri Jun 25 13:51:32 2010
> New Revision: 957942
>
> URL: http://svn.apache.org/viewvc?rev=957942&view=rev
> Log:
> QPID-2696
> Modified the PropertiesFileInitialContextFactory to allow the new addressing 
> strings to be specified in the jndi properties file.
> Downgraded some "info" log messages in AMQDestination to "debug".
> Added a test cases to cover the issue reported in the JIRA.
>
> Modified:
>    
> qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQAnyDestination.java
>    
> qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQDestination.java
>    
> qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/jndi/PropertiesFileInitialContextFactory.java
>    
> qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client/destination/AddressBasedDestinationTest.java
>
> Modified: 
> qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQAnyDestination.java
> URL: 
> http://svn.apache.org/viewvc/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQAnyDestination.java?rev=957942&r1=957941&r2=957942&view=diff
> ==============================================================================
> --- 
> qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQAnyDestination.java
>  (original)
> +++ 
> qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQAnyDestination.java
>  Fri Jun 25 13:51:32 2010
> @@ -23,6 +23,7 @@ package org.apache.qpid.client;
>  import java.net.URISyntaxException;
>
>  import org.apache.qpid.framing.AMQShortString;
> +import org.apache.qpid.messaging.Address;
>  import org.apache.qpid.url.BindingURL;
>
>  /**
> @@ -46,6 +47,11 @@ public class AMQAnyDestination extends A
>         super(str);
>     }
>
> +    public AMQAnyDestination(Address addr) throws Exception
> +    {
> +        super(addr);
> +    }
> +
>     public AMQAnyDestination(AMQShortString exchangeName,AMQShortString 
> exchangeClass,
>                              AMQShortString routingKey,boolean isExclusive,
>                              boolean isAutoDelete, AMQShortString queueName,
>
> Modified: 
> qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQDestination.java
> URL: 
> http://svn.apache.org/viewvc/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQDestination.java?rev=957942&r1=957941&r2=957942&view=diff
> ==============================================================================
> --- 
> qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQDestination.java
>  (original)
> +++ 
> qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQDestination.java
>  Fri Jun 25 13:51:32 2010
> @@ -147,6 +147,8 @@ public abstract class AMQDestination imp
>         defaultDestSyntax = DestSyntax.getSyntaxType(
>                      System.getProperty(ClientProperties.DEST_SYNTAX,
>                                         DestSyntax.ADDR.toString()));
> +
> +
>     }
>
>     protected AMQDestination(Address address) throws Exception
> @@ -154,14 +156,18 @@ public abstract class AMQDestination imp
>         this._address = address;
>         getInfoFromAddress();
>         _destSyntax = DestSyntax.ADDR;
> -        _logger.info("Based on " + address + " the selected destination 
> syntax is " + _destSyntax);
> +        _logger.debug("Based on " + address + " the selected destination 
> syntax is " + _destSyntax);
>     }
>
>     protected AMQDestination(String str) throws URISyntaxException
>     {
>         if (str.startsWith("BURL:") ||
>            (!str.startsWith("ADDR:") && defaultDestSyntax == DestSyntax.BURL))
> -        {
> +        {
> +            if (str.startsWith("BURL:"))
> +            {
> +                str = str.substring(5,str.length());
> +            }
>             _destSyntax = DestSyntax.BURL;
>             getInfoFromBindingURL(new AMQBindingURL(str));
>         }
> @@ -180,7 +186,7 @@ public abstract class AMQDestination imp
>                 throw ex;
>             }
>         }
> -        _logger.info("Based on " + str + " the selected destination syntax 
> is " + _destSyntax);
> +        _logger.debug("Based on " + str + " the selected destination syntax 
> is " + _destSyntax);
>     }
>
>     //retained for legacy support
> @@ -188,7 +194,7 @@ public abstract class AMQDestination imp
>     {
>         getInfoFromBindingURL(binding);
>         _destSyntax = DestSyntax.BURL;
> -        _logger.info("Based on " + binding + " the selected destination 
> syntax is " + _destSyntax);
> +        _logger.debug("Based on " + binding + " the selected destination 
> syntax is " + _destSyntax);
>     }
>
>     protected void getInfoFromBindingURL(BindingURL binding)
> @@ -270,7 +276,11 @@ public abstract class AMQDestination imp
>         _bindingKeys = bindingKeys == null || bindingKeys.length == 0 ? new 
> AMQShortString[0] : bindingKeys;
>         _destSyntax = DestSyntax.BURL;
>         _browseOnly = browseOnly;
> -        _logger.info("Based on " + toString() + " the selected destination 
> syntax is " + _destSyntax);
> +
> +        if (_logger.isDebugEnabled())
> +        {
> +            _logger.debug("Based on " + toString() + " the selected 
> destination syntax is " + _destSyntax);
> +        }
>     }
>
>     public DestSyntax getDestSyntax()
> @@ -642,6 +652,24 @@ public abstract class AMQDestination imp
>         }
>     }
>
> +    public static Destination createDestination(String str) throws Exception
> +    {
> +         if (str.startsWith("BURL:") ||
> +            (!str.startsWith("ADDR:") && defaultDestSyntax == 
> DestSyntax.BURL))
> +         {
> +             if (str.startsWith("BURL:"))
> +             {
> +                 str = str.substring(5,str.length());
> +             }
> +             return createDestination(new AMQBindingURL(str));
> +         }
> +         else
> +         {
> +             Address address = createAddressFromString(str);
> +             return new AMQAnyDestination(address);
> +         }
> +    }
> +
>     // ----- new address syntax -----------
>
>     public static class Binding
> @@ -764,11 +792,11 @@ public abstract class AMQDestination imp
>         this._routingKey = rk;
>     }
>
> -    private Address createAddressFromString(String str)
> +    private static Address createAddressFromString(String str)
>     {
>         if (str.startsWith("ADDR:"))
>         {
> -            str = str.substring(str.indexOf(':')+1,str.length());
> +            str = str.substring(5,str.length());
>         }
>        return Address.parse(str);
>     }
>
> Modified: 
> qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/jndi/PropertiesFileInitialContextFactory.java
> URL: 
> http://svn.apache.org/viewvc/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/jndi/PropertiesFileInitialContextFactory.java?rev=957942&r1=957941&r2=957942&view=diff
> ==============================================================================
> --- 
> qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/jndi/PropertiesFileInitialContextFactory.java
>  (original)
> +++ 
> qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/jndi/PropertiesFileInitialContextFactory.java
>  Fri Jun 25 13:51:32 2010
> @@ -233,27 +233,15 @@ public class PropertiesFileInitialContex
>     /**
>      * Factory method to create new Destination instances from an AMQP 
> BindingURL
>      */
> -    protected Destination createDestination(String bindingURL)
> +    protected Destination createDestination(String str)
>     {
> -        AMQBindingURL binding;
>         try
>         {
> -            binding = new AMQBindingURL(bindingURL);
> +            return AMQDestination.createDestination(str);
>         }
> -        catch (URISyntaxException urlse)
> +        catch (Exception e)
>         {
> -            _logger.warn("Unable to create destination:" + urlse, urlse);
> -
> -            return null;
> -        }
> -
> -        try
> -        {
> -            return AMQDestination.createDestination(binding);
> -        }
> -        catch (IllegalArgumentException iaw)
> -        {
> -            _logger.warn("Binding: '" + binding + "' not supported");
> +            _logger.warn("Unable to create destination:" + e, e);
>
>             return null;
>         }
>
> Modified: 
> qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client/destination/AddressBasedDestinationTest.java
> URL: 
> http://svn.apache.org/viewvc/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client/destination/AddressBasedDestinationTest.java?rev=957942&r1=957941&r2=957942&view=diff
> ==============================================================================
> --- 
> qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client/destination/AddressBasedDestinationTest.java
>  (original)
> +++ 
> qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/client/destination/AddressBasedDestinationTest.java
>  Fri Jun 25 13:51:32 2010
> @@ -23,19 +23,24 @@ package org.apache.qpid.test.client.dest
>
>  import java.util.Collections;
>  import java.util.HashMap;
> +import java.util.Hashtable;
>  import java.util.Map;
>  import javax.jms.Connection;
> +import javax.jms.Destination;
>  import javax.jms.JMSException;
>  import javax.jms.Message;
>  import javax.jms.MessageConsumer;
>  import javax.jms.MessageProducer;
>  import javax.jms.Session;
> +import javax.jms.TextMessage;
> +import javax.naming.Context;
>
>  import org.apache.qpid.client.AMQAnyDestination;
>  import org.apache.qpid.client.AMQDestination;
>  import org.apache.qpid.client.AMQSession_0_10;
>  import org.apache.qpid.client.messaging.address.Node.ExchangeNode;
>  import org.apache.qpid.client.messaging.address.Node.QueueNode;
> +import org.apache.qpid.jndi.PropertiesFileInitialContextFactory;
>  import org.apache.qpid.messaging.Address;
>  import org.apache.qpid.test.utils.QpidBrokerTestCase;
>  import org.slf4j.Logger;
> @@ -79,7 +84,7 @@ public class AddressBasedDestinationTest
>         AMQDestination  dest = new AMQAnyDestination(addr1);
>         try
>         {
> -            cons = jmsSession.createConsumer(dest);
> +            cons = jmsSession.createConsumer(dest);
>         }
>         catch(JMSException e)
>         {
> @@ -398,6 +403,48 @@ public class AddressBasedDestinationTest
>         }
>     }
>
> +    public void testLoadingFromPropertiesFile() throws Exception
> +    {
> +        Hashtable<String,String> map = new Hashtable<String,String>();
> +        map.put("destination.myQueue1", "ADDR:my-queue/hello; {create: 
> always, node: " +
> +                "{x-declare: {auto-delete: true,'qpid.max_size': 1000}}}");
> +
> +        map.put("destination.myQueue2", "ADDR:my-queue2; { create: receiver 
> }");
> +
> +        map.put("destination.myQueue3", 
> "BURL:direct://amq.direct/my-queue3?routingkey='test'");
> +
> +        PropertiesFileInitialContextFactory props = new 
> PropertiesFileInitialContextFactory();
> +        Context ctx = props.getInitialContext(map);
> +
> +        AMQDestination dest1 = (AMQDestination)ctx.lookup("myQueue1");
> +        AMQDestination dest2 = (AMQDestination)ctx.lookup("myQueue2");
> +        AMQDestination dest3 = (AMQDestination)ctx.lookup("myQueue3");
> +
> +        Session jmsSession = 
> _connection.createSession(false,Session.CLIENT_ACKNOWLEDGE);
> +        MessageConsumer cons1 = jmsSession.createConsumer(dest1);
> +        MessageConsumer cons2 = jmsSession.createConsumer(dest2);
> +        MessageConsumer cons3 = jmsSession.createConsumer(dest3);
> +
> +        assertTrue("Destination1 was not created as expected",(
> +                
> (AMQSession_0_10)jmsSession).isQueueExist(dest1,(QueueNode)dest1.getSourceNode(),
>  true));
> +
> +        assertTrue("Destination1 was not bound as expected",(
> +                (AMQSession_0_10)jmsSession).isQueueBound("",
> +                    dest1.getAddressName(),dest1.getAddressName(), null));
> +
> +        assertTrue("Destination2 was not created as expected",(
> +                
> (AMQSession_0_10)jmsSession).isQueueExist(dest2,(QueueNode)dest2.getSourceNode(),
>  true));
> +
> +        assertTrue("Destination2 was not bound as expected",(
> +                (AMQSession_0_10)jmsSession).isQueueBound("",
> +                    dest2.getAddressName(),dest2.getAddressName(), null));
> +
> +        MessageProducer producer = jmsSession.createProducer(dest3);
> +        producer.send(jmsSession.createTextMessage("Hello"));
> +        TextMessage msg = (TextMessage)cons3.receive(1000);
> +        assertEquals("Destination3 was not created as 
> expected.",msg.getText(),"Hello");
> +    }
> +
>     /*public void testBindQueueForXMLExchange() throws Exception
>     {
>         if (!isCppBroker())
>
>
>
> ---------------------------------------------------------------------
> Apache Qpid - AMQP Messaging Implementation
> Project:      http://qpid.apache.org
> Use/Interact: mailto:[email protected]
>
>



-- 
Martin Ritchie

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]

Reply via email to