> On 2012-04-06 10:30:53, Robbie Gemmell wrote:
> > This looks like a good start, but I am rather concerned at the continued 
> > complete lack of any unit tests for the destination code. Whilst a lot of 
> > the clients destination handling issues have been related to the 'if BURL 
> > else' control flows, there have still been numerous cases where it was 
> > things like the Address string parser ("false" vs "False" for example) or 
> > the behaviour of a particular part of the Addressing Syntax implementation 
> > that caused the issues. This stuff is one of the most isolated and easily 
> > unit testable segments of code the client will ever have, and it really 
> > needs to be thoroughly unit tested to help ensure its correctness and more 
> > so to aid its maintainability going forward.
> > 
> > This may be related to your mention of whitespace issues you couldn't get 
> > rid of but some of the files are absolutely riddled with leading tabs, 
> > which I thought ReviewBoard highlighted but it doesn't seem to be doing. 
> > "CTRL+A CTRL+I" is your friend when using Eclipse (if you have the couple 
> > of use-spaces-for-tabs type options set correctly).

Re: the unit testing. Abosutely agreed with you. I didn't do a lot in this area 
bcos I wanted to first get agreement on the design and direction for this 
solution. 
This patch was aimed at getting agreement and feedback on the design. Perhaps I 
should have mentioned my intention under the testing tab.
It seems both you and Rob and are happy with the direction/design. I will now 
focus on adding unit tests and further enhancing the code.

I will work on getting the whitespace issue sorted out.


> On 2012-04-06 10:30:53, Robbie Gemmell wrote:
> > http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/jms/DestinationStringParser.java,
> >  line 91
> > <https://reviews.apache.org/r/4658/diff/2/?file=100196#file100196line91>
> >
> >     BURLs include support for setting various options much like the Address 
> > strings, its not clear to me that this really supports them?

I only added support for the main options that I was familiar with. Again this 
patch was aimed at getting some agreement on direction. So didn't go into a lot 
of detail.
It would be good if I can get some help here on what other options used on your 
side. I believe I have covered the options mentioned in the wiki.
I will have a look again.

However somebody else other than myself needs to review this area again when 
the work is completed to ensure that I haven't miss any.


> On 2012-04-06 10:30:53, Robbie Gemmell wrote:
> > http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/jms/QpidDestination.java,
> >  lines 45-47
> > <https://reviews.apache.org/r/4658/diff/2/?file=100197#file100197line45>
> >
> >     Unless there is a particular need, we should use getters to access 
> > these rather than having the fields themselves protected.
> >     
> >     Naming convention violations.

are you refering to the lack of leading underscores ? 

The reason I left them as protected was to allow the child classes 
(QpidQueue/Topic) to easily refer to them.
However I'm fine with marking them private and having getters.


> On 2012-04-06 10:30:53, Robbie Gemmell wrote:
> > http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/jms/QpidDestination.java,
> >  lines 117-122
> > <https://reviews.apache.org/r/4658/diff/2/?file=100197#file100197line117>
> >
> >     This would be better located neat the top of the file close to what it 
> > statically initialises.

Agreed


> On 2012-04-06 10:30:53, Robbie Gemmell wrote:
> > http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/jms/QpidDestination.java,
> >  line 130
> > <https://reviews.apache.org/r/4658/diff/2/?file=100197#file100197line130>
> >
> >     Its possibly time we had a constant somewhere for the BURL: and ADDR: 
> > prefixes rather than using literals everywhere. It would make their usage 
> > easier to navigate if nothing else.

Noted!


> On 2012-04-06 10:30:53, Robbie Gemmell wrote:
> > http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/jms/QpidQueue.java,
> >  line 46
> > <https://reviews.apache.org/r/4658/diff/2/?file=100198#file100198line46>
> >
> >     Requires a matching hashCode implementation.

Completely forgot this :(


> On 2012-04-06 10:30:53, Robbie Gemmell wrote:
> > http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/jms/QpidQueue.java,
> >  lines 59-66
> > <https://reviews.apache.org/r/4658/diff/2/?file=100198#file100198line59>
> >
> >     Should we really be catching all exceptions, or just the ones we expect 
> > to occur? Is this something we would want to log?
> >     
> >     If this is to handle the declared JMSException on the getQueueName() 
> > implementation then perhaps we could just remove that, because the 
> > implementation doesn't look like it can actually throw a JMSException.
> >     
> >

This was to catch the declared JMSException. There is a potentail for a NPE, 
all though rare.
If somebody creates a Queue with an empty constructor but forgets to set the 
destination string then this could cause a NPE.

Perhaps we can catch the exception an log it ? the NPE would be due to a 
programming error and the log message would help.
What do you think ?


> On 2012-04-06 10:30:53, Robbie Gemmell wrote:
> > http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/jms/QpidTemporaryQueue.java,
> >  line 28
> > <https://reviews.apache.org/r/4658/diff/2/?file=100199#file100199line28>
> >
> >     Naming convention

noted !


> On 2012-04-06 10:30:53, Robbie Gemmell wrote:
> > http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/jms/QpidTemporaryTopic.java,
> >  line 28
> > <https://reviews.apache.org/r/4658/diff/2/?file=100200#file100200line28>
> >
> >     Naming convention.

noted!


> On 2012-04-06 10:30:53, Robbie Gemmell wrote:
> > http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/jms/QpidTemporaryTopic.java,
> >  line 39
> > <https://reviews.apache.org/r/4658/diff/2/?file=100200#file100200line39>
> >
> >     Remove commented out code?

This is not implemented properly. Left that piece as a reminder. Thx for 
pointing it out though.


> On 2012-04-06 10:30:53, Robbie Gemmell wrote:
> > http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/jms/QpidTopic.java,
> >  line 48
> > <https://reviews.apache.org/r/4658/diff/2/?file=100201#file100201line48>
> >
> >     Requires a matching hashCode implementation.

agreed.


> On 2012-04-06 10:30:53, Robbie Gemmell wrote:
> > http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/messaging/Address.java,
> >  lines 45-46
> > <https://reviews.apache.org/r/4658/diff/2/?file=100203#file100203line45>
> >
> >     Naming convention

noted! (I assume it's the leading underscore - all though I personally hate it, 
I'm quite happy to stick to the convention)


> On 2012-04-06 10:30:53, Robbie Gemmell wrote:
> > http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/messaging/address/Link.java,
> >  lines 63-74
> > <https://reviews.apache.org/r/4658/diff/2/?file=100205#file100205line63>
> >
> >     Using 'protected' for a reason?
> >     Naming convention.

Initially thought about subclassing for a protocol version specific child 
class, but have since thought otherwise.
I will mark them private.


> On 2012-04-06 10:30:53, Robbie Gemmell wrote:
> > http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/messaging/address/Node.java,
> >  lines 87-97
> > <https://reviews.apache.org/r/4658/diff/2/?file=100206#file100206line87>
> >
> >     Using 'protected' for a reason?

same as above.


- rajith


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/4658/#review6737
-----------------------------------------------------------


On 2012-04-05 15:03:30, rajith attapattu wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/4658/
> -----------------------------------------------------------
> 
> (Updated 2012-04-05 15:03:30)
> 
> 
> Review request for qpid, Gordon Sim, Robbie Gemmell, Weston Price, Rafael 
> Schloming, and Rob Godfrey.
> 
> 
> Summary
> -------
> 
> The following patch is based on the various discussions we've had on the dev 
> list about restructing our destination implementation.
> As the first phase this patch only includes the new class heirachy. For the 
> second phase we will tackle the integration into the code base.
> 
> A summary of the desgin is as follows,
> 
> 1. Once initialized with the destination string, the destination objects are 
> immutable.
> 2. There are 2 concrete implementations in the form of QpidTopic and 
> QpidQueue.
> 3. Destinations will be desginated as "Queues" and "Topics" by the users in 
> the jndi file. This prevents us from having to automagically decide the type.
> 4. Both BURL and Address strings are parsed and adapted into a common data 
> structure. Internally the code will work with this data structure.
> 5. The Destination impl does not depend on any other classes, thus allowing 
> it be used with the current code or the new client.
> 
> (There are 2 oe 3 white space errors that I can't seem to get rid of. It 
> seems they are comming from the diff process).
> 
> 
> This addresses bug QPID-3401.
>     https://issues.apache.org/jira/browse/QPID-3401
> 
> 
> Diffs
> -----
> 
>   
> http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/jms/DestinationStringParser.java
>  PRE-CREATION 
>   
> http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/jms/QpidDestination.java
>  PRE-CREATION 
>   
> http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/jms/QpidQueue.java
>  PRE-CREATION 
>   
> http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/jms/QpidTemporaryQueue.java
>  PRE-CREATION 
>   
> http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/jms/QpidTemporaryTopic.java
>  PRE-CREATION 
>   
> http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/jms/QpidTopic.java
>  PRE-CREATION 
>   
> http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/jms/TemporaryDestinationProvider.java
>  PRE-CREATION 
>   
> http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/messaging/Address.java
>  1309769 
>   
> http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/messaging/address/AddressException.java
>  PRE-CREATION 
>   
> http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/messaging/address/Link.java
>  PRE-CREATION 
>   
> http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/messaging/address/Node.java
>  PRE-CREATION 
>   
> http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/messaging/util/AddressHelper.java
>  PRE-CREATION 
> 
> Diff: https://reviews.apache.org/r/4658/diff
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> rajith
> 
>

Reply via email to