Re: Re: IMS contribution
"M. Rangnathan" <[email protected]> Thu, 21 Dec 2006 09:26:20 -0500
| Newsgroups | gmane.comp.voip.nist-sip |
|---|---|
| Message-ID | <[email protected]> |
Actually overriding .equals() and using only the Interface for equals() is preferred for two reasons - 1. If we took your interfaces for JSIP 1.3 (which, presumably would have IMS support), then you would need to do an implementation independent equals - otherwise the TCK will cause problems. 2. It would indeed make it more modular to keep the code where it is at present so its cleanly separated. So yes, Miguel, if you are willing to put some effort into it, implement .equals() using only the java interface ( take a look at Contact.java for example). That would be the preferred way to solve the problem. Thanks Ranga Jeroen van Bemmel wrote: > Perhaps overriding equals() in the ims headers will also solve it. > More clean than putting everything in 1 package > > Regards, > Jeroen > > M. Rangnathan wrote: > >> Jeroen, Correct! Miguel, you may want to move the implementation >> classes from gov.nist.javax.sip.header.ims to >> gov.nist.javax.sip.header to avoid this problem. You can leave the >> interfaces where they are. If you use a refactoring tool (eclipse >> works for me), the move will be painless. There are some other >> extension headers in gov.nist.javax.sip.header.extension for which I >> shall do the same. >> Ranga >> >> >> Jeroen van Bemmel wrote: >> >>> Miguel, >>> >>> It's a reflection error. SIPObject equals uses reflection, this works >>> fine for headers that are in the gov.nist.javax.sip.header package >>> but not in the subpackage ims. It works for Path because that header >>> does >>> not have any protected members in the ims subpackage >>> >>> Regards, >>> Jeroen >>> >>> ----- Original Message ----- >>> *From:* Miguel Freitas <mailto:[email protected]> >>> *To:* M. Rangnathan <mailto:[email protected]> >>> *Cc:* Jeroen van Bemmel <mailto:[email protected]> ; >>> [email protected] <mailto:[email protected]> >>> *Sent:* Monday, December 18, 2006 12:10 PM >>> *Subject:* Re: [nist-sip] Re: IMS contribution >>> >>> >>> Ranga, >>> What could be the cause to this? >>> >>> [junit] Unexpected internal error FIXME!! Class >>> gov.nist.javax.sip.header.SIPObject can not access a member of >>> class gov.nist.javax.sip.header.ims.Privacy with modifiers >>> "protected" When testing the parsers I keep getting this error, even >>> in the >>> last cvs version and without chainging anything in the code >>> except including the parser tests. It affects almost all headers >>> contained in the gov.nist.javax.sip.header.ims package, except >>> the Path header. >>> >>> [junit] start >>> test.unit.gov.nist.javax.sip.parser.ims.PrivacyParserTest >>> [junit] Privacy: none >>> [junit] Privacy: none >>> [junit] accessed field privacy >>> [junit] modifier 4 >>> [junit] modifier.private 2 >>> [junit] Unexpected internal error FIXME!! Class >>> gov.nist.javax.sip.header.SIPObject can not access a member of >>> class gov.nist.javax.sip.header.ims.Privacy with modifiers >>> "protected" [junit] java.lang.IllegalAccessException: Class >>> gov.nist.javax.sip.header.SIPObject can not access a member of >>> class gov.nist.javax.sip.header.ims.Privacy with modifiers >>> "protected" [junit] at >>> sun.reflect.Reflection.ensureMemberAccess(Reflection.java:65) >>> [junit] at >>> java.lang.reflect.Field.doSecurityCheck(Field.java:954) >>> [junit] at java.lang.reflect.Field.getFieldAccessor >>> (Field.java:895) [junit] at >>> java.lang.reflect.Field.get(Field.java:357) [junit] at >>> gov.nist.javax.sip.header.SIPObject.equals(SIPObject.java:126) >>> [junit] at java.util.AbstractList.equals(AbstractList.java >>> :610) [junit] at >>> >>> gov.nist.javax.sip.header.SIPHeaderList.equals(SIPHeaderList.java:429) >>> [junit] at junit.framework.Assert.assertEquals(Assert.java:62) >>> [junit] at junit.framework.Assert.assertEquals(Assert.java :71) >>> [junit] at >>> test.unit.gov.nist.javax.sip.parser.ParserTestCase.testParser(ParserTestCase.java:74) >>> >>> [junit] at >>> test.unit.gov.nist.javax.sip.parser.ims.PrivacyParserTest.testParser(PrivacyParserTest.java:40) >>> >>> >>> >>> >>> >>> >>> On 12/13/06, *M. Rangnathan* <[email protected] >>> <mailto:[email protected]>> wrote: >>> >>> Miguel, >>> >>> What is the nature of the serious problem? Its a bit >>> surprising. There >>> have been no major changes in the parser for quite some time. >>> You should >>> however track all places where your older headers were being >>> referenced. >>> you should also use a refactoring tool (such as eclipse >>> refactoring) to >>> change class names. Otherwise, you will have to change things >>> manually >>> everywhere the old class name is referenced. I suppose you >>> were already >>> doing this but I thought I'd just mention it. >>> >>> There have been no major changes since that date. However, if >>> you are >>> using cvs and making changes against cvs, then a cvs update >>> before commit will merge any changes. I'd take a closer look >>> before rushing to >>> rewrite things. Your older contributions were working AFIK. >>> This also >>> points out the need for the test cases you are contributing >>> this time. I >>> could add these to the regression test suite to make sure >>> nothing breaks >>> in future once we sort this out. >>> >>> Regards >>> >>> Ranga >>> >>> >>> >>> Miguel Freitas wrote: >>> >>> > >>> > I'm running it against CVS version downloaded at >>> 2006-12-04, hope >>> > nothing critical changed since... >>> > And I made the changes with the help of Meld diff viewer, >>> keeping (all >>> > newer) changes intact. >>> > >>> > But I'm having serious problems with the IMS headers >>> parsers, that I'm >>> > considering re-writing them from scratch... :( >>> > That is strange, because I was using all of them to build >>> my SIP-IMS >>> > UA without any problem (older version of JSIP1.2)... >>> Anything has >>> > changed concerning the parsing that I might be missing? >>> > >>> > >>> > Miguel Freitas >>> > - - >>> > - - - - - - - - >>> > - Telecommunications Institute - >>> > - Instituto de Telecomunicacoes - >>> > - Aveiro, Portugal - >>> > - www.it.pt <http://www.it.pt> >>> <http://www.it.pt> - >>> > - - - - - - - - >>> > >>> > On 12/12/06, *M. Ranganathan* < [email protected] >>> <mailto:[email protected]> >>> > <mailto:[email protected] <mailto:[email protected]>>> wrote: >>> > >>> > Jeroen, >>> > >>> > OK. Thanks for informing. I fixed the problem ( well, >>> at least I >>> > did an >>> > unset CLASSPATH and tried ant complieri and compiletck >>> and it seems to >>> > be OK now). >>> > >>> > Miguel, OK please go ahead and change names if you >>> wish. Please >>> > use the >>> > current version and change its name so as to keep the >>> latest > changes (if >>> > any) intact. >>> > >>> > Please go ahead and commit after running tck and I'll >>> announce your >>> > contribution on the list (which I have already done in >>> effect :-) ). >>> > Thanks for writing up an example. >>> > >>> > Regards, >>> > >>> > >>> > Ranga >>> > >>> > >>> > >>> > On Tue, 2006-12-12 at 20:13 +0100, Jeroen van Bemmel >>> wrote: > > Specifically, I need to do this for 'ant >>> runtck'. Build target works >>> > > >>> > > Jeroen >>> > > ----- Original Message ----- >>> > > From: Jeroen van Bemmel >>> > > To: Miguel Freitas ; M. Ranganathan >>> > > Cc: [email protected] >>> <mailto:[email protected]> >>> <mailto:[email protected] >>> <mailto:[email protected]>> > > Sent: >>> Tuesday, December 12, 2006 7:10 PM > > Subject: >>> Re: [nist-sip] Re: IMS contribution > > >>> > > >>> > > I always have to do 'set >>> CLASSPATH=lib/junit-x.x.x.jar' >>> > to get >>> > > it to build under ant (from a commandline >>> window) > > >>> > > Jeroen >>> > > ----- Original Message ----- >>> > > From: Miguel Freitas >>> > > To: M. Ranganathan >>> > > Cc: [email protected] >>> <mailto:[email protected]> >>> > <mailto:[email protected] >>> <mailto:[email protected]>> >>> > > Sent: Tuesday, December 12, 2006 >>> 6:17 PM > > Subject: [nist-sip] Re: IMS >>> contribution > > >>> > > >>> > > >>> > > On 12/12/06, M. Ranganathan < >>> [email protected] <mailto:[email protected]> >>> > <mailto:[email protected] <mailto:[email protected]>>> >>> wrote: > > Hi Miguel, >>> > > >>> > > >>> > > I really cant figure out the >>> reasons for >>> > your >>> > > compile problems. I just >>> > > checked out a fresh copy and >>> I still have no >>> > > problems. Does anybody else >>> > > on this list have such >>> problems? > Clearly, its >>> > > because you dont have >>> > > junit in your class path but >>> why? It >>> > does not >>> > > seem to be an issue for >>> > > me. >>> > > >>> > > Yes, it seams to be a class path >>> issue to ant, >>> > since >>> > > junit.framework.* is accessible >>> inside Eclipse. >>> > > Is there other way to compile the >>> parser tests? >>> > > Silly question but.. Is there >>> anything I have to >>> > > install on my system or put in the >>> system CLASSPATH? >>> > > >>> > > The "compileunit" target does not >>> include, like >>> > for eg >>> > > "compiletck" does: >>> > > <classpath> >>> > > >>> <pathelement > > location='${junit_jar}' >>> /> > > >>> </classpath> > > could this issue be >>> related to it? > > >>> > > >>> > > -> P-Headers names changed to >>> include a >>> > > leading "P". eg: >>> > > PAccessNetworkInfoHeader.java >>> > > >>> > > Any reason for the class >>> name changes? It >>> > > could cause issues with >>> > > people that are already >>> using your > > contributions. >>> > > >>> > > I know it's not a developer-friendly >>> decision, >>> > and not >>> > > a so good policy to change stuff >>> names after >>> > > deployment, but I think that sooner >>> or later >>> > someone >>> > > will want to change those names since >>> their real >>> > name >>> > > includes a leading "P". >>> > > I share most of the responsibility >>> on that > issue, and >>> > > I should had changed it as soon as I >>> started >>> > working >>> > > on them and before their first >>> submission. > > But that's my humble >>> opinion. What do you think? >>> > > >>> > > >>> > > >>> > > A small nit: can you also >>> please fix the >>> > > javadoc errors in your code >>> > > ( there are some from the >>> previous >>> > > contributions you made). >>> > > >>> > > Yes, of course. Is being taking care >>> of. > > >>> > > >>> > > Thanks for adding the unit >>> tests. Your >>> > > contribution would be a good >>> > > basis to pattern IMS headers >>> for JSIP 1.3 . >>> > > >>> > > Best regards, >>> > > >>> > > Ranga. >>> > > >>> > > >>> > > >>> > > On Tue, 2006-12-12 at 15:54 >>> +0000, Miguel >>> > > Freitas wrote: >>> > > > >>> > > > sorry, I forgot to change >>> the subject :) >>> > > > >>> > > > On 12/12/06, M. Ranganathan >>> > > <[email protected] >>> <mailto:[email protected]> >>> > <mailto:[email protected] <mailto:[email protected]>>> >>> wrote: > > > >>> > > > >>> > > > Hi Miguel, >>> > > > >>> > > > I look forward to >>> your > > contributions! >>> > > > >>> > > > I managed to include the >>> changes in a >>> > recent >>> > > CVS source code version >>> > > > and I'm just concluding the >>> parser >>> > tests and >>> > > a simple example for the >>> > > > usage of the new headers. >>> Hence my >>> > need to >>> > > compile the unit tests. >>> > > > >>> > > > Here's a list of my >>> changes, please let me >>> > > know if at this point you >>> > > > might not agree with any of >>> them.. >>> > > > >>> > > > >>> ----------------------------------------- >>> > > > .: changes in JAIN-SIP RI >>> > > > >>> ----------------------------------------- >>> > > > >>> > > > -> changes in >>> > > >>> gov.nist.core.NameListCore.java > > > . >>> white space added between the >>> > several >>> > > parameters encoding >>> > > > >>> > > > -> added >>> > > >>> > gov.nist.javax.sdp.fields.PreconditionFields.java >>> > > > -> changes in >>> > > >>> gov.nist.sdp.MediaDescriptionImpl.java >>> > > > . changed >>> BandwithField logic >>> > > > . PUBLIC >>> > addAttribute(AttributeField >>> > > af) >>> > > > - is there >>> other way to add >>> > > several SDP attributes with >>> > > > the same name to the same >>> Media > Description? >>> > > > eg: m=video >>> 00 RTP/AVP 98 >>> > > 99 >>> > > > >>> a=rtpmap:98 H263 >>> > > > >>> a=rtpmap:99 MP4V-ES >>> > > > >>> > > > -> P-Headers names changed >>> to include a >>> > > leading "P". eg: >>> > > > >>> PAccessNetworkInfoHeader.java > > >>> > > > > -> changes in >>> > > >>> > gov.nist.javax.sip.header.ims.ParametersNamesIms.java >>> > > > >>> > > > -> changes in >>> > > >>> > gov.nist.javax.sip.header.ims.SIPHeaderNamesIms.java >>> > > > >>> > > > -> added >>> > > >>> > gov.nist.javax.sip.header.ims.SecurityAgree.java >>> > > > -> added >>> > > >>> > gov.nist.javax.sip.header.ims.SecurityAgreeHeader.java >>> > > > -> added >>> > > >>> > gov.nist.javax.sip.header.ims.SecurityClient.java >>> > > > -> added >>> > > >>> > gov.nist.javax.sip.header.ims.SecurityClientList.java >>> > > > -> added >>> > > >>> > gov.nist.javax.sip.header.ims.SecurityClientHeader.java >>> > > > -> added >>> > > >>> > gov.nist.javax.sip.header.ims.SecurityServer.java >>> > > > -> added >>> > > >>> > gov.nist.javax.sip.header.ims.SecurityServerList.java >>> > > > -> added >>> > > >>> > gov.nist.javax.sip.header.ims.SecurityServerHeader.java >>> > > > -> added >>> > > >>> > gov.nist.javax.sip.header.ims.SecurityVerify.java >>> > > > -> added >>> > > >>> > gov.nist.javax.sip.header.ims.SecurityVerifyList.java >>> > > > -> added >>> > > >>> > gov.nist.javax.sip.header.ims.SecurityVerifyHeader.java >>> > > > >>> > > > -> changes in >>> > > >>> > gov.nist.javax.sip.header.HeaderFactoryImpl.java >>> > > > >>> > > > -> changes in >>> > > >>> gov.nist.javax.sip.header.NameMap.java >>> > > > >>> > > > -> changes in >>> > > >>> gov.nist.javax.sip.message.ListMap.java >>> > > > >>> > > > -> changes in >>> > > >>> gov.nist.javax.sip.parser.ParserFactory.java >>> > > > >>> > > > -> changes in >>> > > >>> gov.nist.javax.sip.parser.Lexer.java >>> > > > >>> > > > -> changes in >>> > > >>> gov.nist.javax.sip.parser.TokenTypes.java >>> > > > >>> > > > -> added >>> > > >>> > gov.nist.javax.sip.parser.PAssociatedURIParser.java >>> > > > -> added >>> > > >>> > gov.nist.javax.sip.parser.PCalledPartyIDParser.java >>> > > > -> added >>> > > >>> > gov.nist.javax.sip.parser.SecurityAgreeParser.java >>> > > > -> added >>> > > >>> > gov.nist.javax.sip.parser.SecurityClientParser.java >>> > > > -> added >>> > > >>> > gov.nist.javax.sip.parser.SecurityServerParser.java >>> > > > -> added >>> > > >>> > gov.nist.javax.sip.parser.SecurityVerifyParser.java >>> > > > >>> > > > -> added >>> > > >>> unit.gov.nist.javax.sip.parser.ims.* >>> > > > -> added >>> > > >>> > >>> unit.gov.nist.javax.sip.parser.ims.SecurityClientTest.java > >>> > > -> added > > >>> > >>> unit.gov.nist.javax.sip.parser.ims.SecurityServerTest.java > >>> > > ... > > >>> > > > > -> added examples.ims.* >>> > > > . based on >>> examples.simplecallsetup >>> > > > >>> > > > >>> > > > >>> ----------------------------------------- >>> > > > .: changes in proprietary >>> JAIN-SIP API >>> > > > >>> ----------------------------------------- >>> > > > >>> > > > -> changes in >>> > > >>> javax.sdp.MediaDescription.java > > > . >>> methods for PreconditionFields >>> > > > . PUBLIC >>> > addAttribute(AttributeField af) >>> > > > >>> > > > >>> > > > >>> > > > >>> > > > Miguel Freitas >>> > > > -- >>> > > > - - - - >>> > > - - - - >>> > > > - Telecommunications >>> Institute - >>> > > > - Instituto de >>> Telecomunicacoes - >>> > > > - Aveiro, >>> > Portugal - >>> > > > - >>> > > www.it.pt <http://www.it.pt> >>> > <http://www.it.pt> - >>> > > > - - - - >>> > > - - - - >>> > > > >>> > > > >>> > > > -- >>> > > > - - - - >>> > > - - - - >>> > > > - Telecommunications >>> Institute - >>> > > > - Instituto de >>> Telecomunicacoes - >>> > > > - Aveiro, >>> > Portugal - >>> > > > - >>> > > www.it.pt <http://www.it.pt> >>> > < http://www.it.pt> >>> - > > > - - - - >>> > > - - - - >>> > > >>> > > >>> > > >>> > > >>> > > -- >>> > > - - - >>> - - - - - >>> > > - Telecommunications Institute - >>> > > - Instituto de Telecomunicacoes - >>> > > - Aveiro, >>> Portugal - >>> > > - www.it.pt <http://www.it.pt> >>> > <http://www.it.pt> - >>> > > - - - >>> - - - - - >>> > > >>> > > >>> > > >>> > ______________________________________________________ >>> > > >>> > > >>> _______________________________________________ >>> > > nist-sip mailing list >>> > > [email protected] >>> <mailto:[email protected]> >>> > <mailto:[email protected] >>> <mailto:[email protected]>> >>> > > >>> http://www-x.antd.nist.gov/mailman/listinfo/nist-sip >>> <http://www-x.antd.nist.gov/mailman/listinfo/nist-sip> >>> > > >>> > > >>> > > >>> > >>> ______________________________________________________________ > >>> > > > _______________________________________________ > >>> > nist-sip mailing list > > >>> [email protected] <mailto:[email protected]> >>> <mailto:[email protected] <mailto:[email protected]>> > >>> > http://www-x.antd.nist.gov/mailman/listinfo/nist-sip > > >>> >>> >>> -- >>> M. Ranganathan >>> >>> Advanced Networking Technologies Division, >>> National Institute of Standards and Technology (NIST), >>> 100 Bureau Drive, Stop 8920, Gaithersburg, MD 20899. >>> tel:301 975 3664 , fax:301 590 0932 http://w3.antd.nist.gov/ >>> Advanced Networking Technologies For the People! >> > > -- M. Ranganathan Advanced Networking Technologies Division, National Institute of Standards and Technology (NIST), 100 Bureau Drive, Stop 8920, Gaithersburg, MD 20899. tel:301 975 3664 , fax:301 590 0932 http://w3.antd.nist.gov/ Advanced Networking Technologies For the People!