Re: [sonar-dev] Re: About Java 7 support

Freddy Mallet <[email protected]> Mon, 5 Sep 2011 22:49:07 +0200
Newsgroups gmane.comp.java.audit.checkstyle.user
Message-ID <CAPyGxigE8L9YHQjEfuoQDt0WvH=j8eY92=GZ4ooG1eeQ=sMMgw__9048.37429193339$1315255778$gmane$org@mail.gmail.com>
--===============2061160934235253725==
Content-Type: multipart/alternative; boundary=00151758f366a2685204ac37d7b1

--00151758f366a2685204ac37d7b1
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Hi Evgeny,

In fact Dinesh already tried to fix the java grammar to handle this use cas=
e
but that's a bit tricky so we decided to postpone this investigation.

Freddy

----------------------------------------
Freddy Mallet
www.SonarSource.org
www.SonarSource.com
----------------------------------------


On Mon, Sep 5, 2011 at 10:30 PM, Evgeny Mandrikov <[email protected]>wrot=
e:

> Dinesh FYI another interesting open issue is about analysis of Java 1.4
> code, where enum can be used as an identifier :
> http://jira.codehaus.org/browse/SONAR-1653
>
>
> On Mon, Sep 5, 2011 at 19:56, Evgeny Mandrikov <[email protected]>wrote=
:
>
>> Hi all,
>>
>> FYI: I tested this patch by applying it locally on Checkstyle 5.5-SNAPSH=
OT
>> and using this version in Sonar.
>> And it works like a charm for simple project, which uses all language
>> features of Java 7 (
>> https://github.com/Godin/sonar-experiments/tree/master/java7-language-fe=
atures
>>  ).
>> Congratulations Dinesh!
>>
>> However Dinesh, could you please also take a look on another parsing
>> issue, which is still present in 5.5-SNAPSHOT :
>> http://sourceforge.net/tracker/?func=3Ddetail&atid=3D397078&aid=3D166713=
7&group_id=3D29721
>> Currently in Sonar we have a workaround - we simply ignore this error, b=
ut
>> IMO would be better to fix it, if you can ;)
>>
>> On Fri, Sep 2, 2011 at 17:42, Dinesh Bolkensteyn <
>> [email protected]> wrote:
>>
>>> Dear Olivier,
>>>
>>> The patch is provided here:
>>> https://sourceforge.net/tracker/?func=3Ddetail&aid=3D3403265&group_id=
=3D29721&atid=3D397080
>>>
>>> Note that, because SourceForge does not preserve spaces in the comment,
>>> the AST part is messed up, which is why I post the comment hereunder ag=
ain.
>>>
>>> *** Original comment attached to the patch ***
>>>
>>> This patch adds the support for Java 7 to Checkstyle's ANTLR grammar.
>>> It comes with 1 unit test for each new Java 7 language feature.
>>>
>>> This patch should be backwards-compatible: AST for files which do not u=
se
>>> Java 7 features should be left unchanged.
>>>
>>> Impact by Java 7 language feature:
>>>
>>>  1) String in switch: None, the grammar already supported this.
>>>
>>>  2) Simplified variable arguments: None, the grammar should not be
>>> impacted by this feature.
>>>
>>>  3) Binary integer literals and underscores in numerical literals: The
>>> tokens value in the AST will be identical as the one written in the sou=
rce
>>> code.
>>>
>>>  4) Diamond Generics: In presence of a diamond, the AST looks like:
>>>
>>> +--TYPE_ARGUMENTS
>>>     |
>>>     +--GENERIC_START
>>>     +--GENERIC_END
>>>
>>>  5) try-with-resources: In presence of a try-with-resources, the AST
>>> looks like:
>>>
>>> +--try
>>>     |
>>>     +--LPAREN (new node containing the "resource")
>>>         |
>>>         +--MODIFIERS
>>>         +--TYPE
>>>             |
>>>             ...
>>>         +--IDENT
>>>         +--ASSIGN
>>>         +--EXPR
>>>             |
>>>             ...
>>>         +--RPAREN
>>>     +--SLIST (list of statements of the try block, just like a try/catc=
h)
>>>         |
>>>         ...
>>>     +--LITERAL_CATCH (optionnally, if there was a catch, just like a
>>> try/catch)
>>>     +=E2=80=A6 (unchanged, just like a try/catch)
>>>
>>>  6) Multi-catch and more precise rethrow: In presence of a multi-catch,
>>> the AST looks like:
>>>
>>> +--try
>>>     |
>>>     +--SLIST (list of statements of the try block)
>>>         |
>>>         ...
>>>     +--LITERAL_CATCH
>>>         |
>>>         +--LPAREN
>>>         +--PARAMETER_DEF
>>>             |
>>>             +--MODIFIERS
>>>             +--TYPE
>>>                 |
>>>                 +--IDENT (containing the first exception to catch, or a
>>> DOT node if it is a fully qualified type)
>>>                 +--IDENT (containing the second exception to catch, or =
a
>>> DOT node if it is a fully qualified type)
>>>                 +--...
>>>             +--IDENT (name of the exception variable)
>>>         +--RPAREN
>>>         +--SLIST (list of statements of the catch block)
>>>             |
>>>             ...
>>>
>>> Kind regards,
>>>  Dinesh Bolkensteyn
>>>
>>>
>>> On Tue, Aug 16, 2011 at 10:07 AM, Freddy Mallet <
>>> [email protected]> wrote:
>>>
>>>> Thanks for your answer Oliver ! So we'll start with the first baby ste=
p
>>>> to patch the current Antlr grammar. We should get back to you during t=
he
>>>> upcoming weeks.
>>>>
>>>> Kind regards,
>>>> Freddy
>>>> ----------------------------------------
>>>> Freddy Mallet
>>>> www.SonarSource.org
>>>> www.SonarSource.com
>>>> ----------------------------------------
>>>>
>>>>
>>>> On Tue, Aug 16, 2011 at 4:34 AM, Oliver Burn <[email protected]>wr=
ote:
>>>>
>>>>> Hi Freddy,
>>>>>
>>>>> Thanks for your kind offer.
>>>>>
>>>>> My preference for a new grammar is motivated by the following thought=
s:
>>>>>
>>>>>    - Upgrade from ANTLRv2 to ANTLRv3 - there a numerous benefits to
>>>>>    not being left behind, including newer features and the awesome AN=
TLRworks
>>>>>    - The existing grammar has evolved along with the language - a
>>>>>    fresh implementation maybe cleaner
>>>>>    - Hoping to find a ANTLR grammar out there that somebody is
>>>>>    maintaining. Bare in mind that when Java 8 comes out, where will b=
e a series
>>>>>    of changes to the grammar required.
>>>>>
>>>>> That all said, it would be easier to patch the existing grammar. I
>>>>> would happily take a patch that does that. :-)
>>>>>
>>>>> Regards,
>>>>> Oliver
>>>>>
>>>>> On Tue, Aug 16, 2011 at 01:57, Freddy Mallet <[email protected]=
>wrote:
>>>>>
>>>>>> Hi Oliver,
>>>>>>
>>>>>> We would be happy to contribute to the support of java 7 [1].
>>>>>> Upgrading the current Antlr grammar should not be too complex (even =
if not
>>>>>> simple) in order to support new java language enhancements :
>>>>>>
>>>>>>    - Strings in switch statements
>>>>>>    - try-with-resources statements
>>>>>>    - improved type inference for generic instance creation
>>>>>>    ("diamond")
>>>>>>    - better integral literals
>>>>>>    - and improved exception handling (multi-catch)
>>>>>>
>>>>>> In ticket 3328367 [1], you mention the option to fully rewrite the
>>>>>> Antlr grammar instead of simply updating the existing one. In few wo=
rds,
>>>>>> could you explain what would be the advantages of this solution and =
why you
>>>>>> seem to prefer this second solution ?
>>>>>>
>>>>>> Thanks
>>>>>> Freddy
>>>>>>
>>>>>> [1] -
>>>>>> http://sourceforge.net/tracker/?func=3Ddetail&aid=3D3328367&group_id=
=3D29721&atid=3D397078you seem to be
>>>>>> ----------------------------------------
>>>>>> Freddy Mallet
>>>>>> www.SonarSource.org
>>>>>> www.SonarSource.com
>>>>>> ----------------------------------------
>>>>>>
>>>>>>
>>>>>> --------------------------------------------------------------------=
----------
>>>>>> uberSVN's rich system and user administration capabilities and model
>>>>>> configuration take the hassle out of deploying and managing Subversi=
on
>>>>>> and
>>>>>> the tools developers use with it. Learn more about uberSVN and get a
>>>>>> free
>>>>>> download at:  http://p.sf.net/sfu/wandisco-dev2dev
>>>>>>
>>>>>> _______________________________________________
>>>>>> Checkstyle-user mailing list
>>>>>> [email protected]
>>>>>> https://lists.sourceforge.net/lists/listinfo/checkstyle-user
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------=
---------
>>>>> uberSVN's rich system and user administration capabilities and model
>>>>> configuration take the hassle out of deploying and managing Subversio=
n
>>>>> and
>>>>> the tools developers use with it. Learn more about uberSVN and get a
>>>>> free
>>>>> download at:  http://p.sf.net/sfu/wandisco-dev2dev
>>>>>
>>>>> _______________________________________________
>>>>> Checkstyle-user mailing list
>>>>> [email protected]
>>>>> https://lists.sourceforge.net/lists/listinfo/checkstyle-user
>>>>>
>>>>>
>>>>
>>>
>>
>>
>> --
>> Best regards,
>> Evgeny Mandrikov aka Godin <http://godin.net.ru>
>> http://twitter.com/_godin_
>>
>
>
>
> --
> Best regards,
> Evgeny Mandrikov aka Godin <http://godin.net.ru>
> http://twitter.com/_godin_
>

--00151758f366a2685204ac37d7b1
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Hi Evgeny,<div><br></div><div>In fact Dinesh already tried to fix the java =
grammar to handle this use case but that&#39;s a bit tricky so we decided t=
o postpone this investigation.</div><div><br></div><div>Freddy =C2=A0</div>=
<div>
<br clear=3D"all">----------------------------------------<br>Freddy Mallet=
<br><a href=3D"http://www.SonarSource.org" target=3D"_blank">www.SonarSourc=
e.org</a><br><a href=3D"http://www.SonarSource.com" target=3D"_blank">www.S=
onarSource.com</a><br>
----------------------------------------<br>
<br><br><div class=3D"gmail_quote">On Mon, Sep 5, 2011 at 10:30 PM, Evgeny =
Mandrikov <span dir=3D"ltr">&lt;<a href=3D"mailto:[email protected]">mand=
[email protected]</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" =
style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Dinesh FYI another interesting open issue is about analysis of Java 1.4 cod=
e, where enum can be used as an identifier : <a href=3D"http://jira.codehau=
s.org/browse/SONAR-1653" target=3D"_blank">http://jira.codehaus.org/browse/=
SONAR-1653</a><div>
<div></div><div class=3D"h5"><br>

<br><div class=3D"gmail_quote">On Mon, Sep 5, 2011 at 19:56, Evgeny Mandrik=
ov <span dir=3D"ltr">&lt;<a href=3D"mailto:[email protected]" target=3D"_=
blank">[email protected]</a>&gt;</span> wrote:<br><blockquote class=3D"gm=
ail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-le=
ft:1ex">


Hi all,<div><br></div><div>FYI: I tested this patch by applying it locally =
on Checkstyle 5.5-SNAPSHOT and using this version in Sonar.</div><div>And i=
t works like a charm for simple project, which uses all language features o=
f Java 7 (=C2=A0<a href=3D"https://github.com/Godin/sonar-experiments/tree/=
master/java7-language-features" target=3D"_blank">https://github.com/Godin/=
sonar-experiments/tree/master/java7-language-features</a>=C2=A0).</div>



<div>Congratulations Dinesh!</div><div><br></div><div>However Dinesh, could=
 you please also take a look on another parsing issue, which is still prese=
nt in 5.5-SNAPSHOT : <a href=3D"http://sourceforge.net/tracker/?func=3Ddeta=
il&amp;atid=3D397078&amp;aid=3D1667137&amp;group_id=3D29721" target=3D"_bla=
nk">http://sourceforge.net/tracker/?func=3Ddetail&amp;atid=3D397078&amp;aid=
=3D1667137&amp;group_id=3D29721</a></div>



<div>Currently in Sonar we have a workaround - we simply ignore this error,=
=C2=A0but IMO would be better to fix it, if you can ;)</div><div><div><div>=
</div><div><br><div class=3D"gmail_quote">On Fri, Sep 2, 2011 at 17:42, Din=
esh Bolkensteyn <span dir=3D"ltr">&lt;<a href=3D"mailto:dinesh.bolkensteyn@=
sonarsource.com" target=3D"_blank">[email protected]</a>&g=
t;</span> wrote:<br>



<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">Dear Olivier,<br><br>The patch is provided h=
ere: <a href=3D"https://sourceforge.net/tracker/?func=3Ddetail&amp;aid=3D34=
03265&amp;group_id=3D29721&amp;atid=3D397080" target=3D"_blank">https://sou=
rceforge.net/tracker/?func=3Ddetail&amp;aid=3D3403265&amp;group_id=3D29721&=
amp;atid=3D397080</a><br>




<br>Note that, because SourceForge does not preserve spaces in the comment,=
 the AST part is messed up, which is why I post the comment hereunder again=
.<br><br>*** Original comment attached to the patch ***<br><br>This patch a=
dds the support for Java 7 to Checkstyle&#39;s ANTLR grammar.<br>




It comes with 1 unit test for each new Java 7 language feature.<br><br>This=
 patch should be backwards-compatible: AST for files which do not use Java =
7 features should be left unchanged.<br><br>Impact by Java 7 language featu=
re:<br>




<br>=C2=A01) String in switch: None, the grammar already supported this.<br=
><br>=C2=A02) Simplified variable arguments: None, the grammar should not b=
e impacted by this feature.<br>=C2=A0<br>=C2=A03) Binary integer literals a=
nd underscores in numerical literals: The tokens value in the AST will be i=
dentical as the one written in the source code.<br>




<br>=C2=A04) Diamond Generics: In presence of a diamond, the AST looks like=
:<br><br>+--TYPE_ARGUMENTS<br>=C2=A0=C2=A0=C2=A0 |<br>=C2=A0=C2=A0=C2=A0 +-=
-GENERIC_START<br>=C2=A0=C2=A0=C2=A0 +--GENERIC_END<br><br>=C2=A05) try-wit=
h-resources: In presence of a try-with-resources, the AST looks like: <br>




<br>+--try<br>=C2=A0=C2=A0=C2=A0 |<br>=C2=A0=C2=A0=C2=A0 +--LPAREN (new nod=
e containing the &quot;resource&quot;)<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0 |<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 +--MODIFIERS<br>=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 +--TYPE<br>=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |<br>=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ...<br>=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 +--IDENT<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 +=
--ASSIGN<br>



=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 +--EXPR<br>
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |<br>=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ...<br>=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 +--RPAREN<br>=C2=A0=C2=A0=C2=A0 +--=
SLIST (list of statements of the try block, just like a try/catch)<br>=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 ...<br>=C2=A0=C2=A0=C2=A0 +--LITERAL_CATCH (optionnally, if th=
ere was a catch, just like a try/catch)<br>




=C2=A0=C2=A0=C2=A0 +=E2=80=A6 (unchanged, just like a try/catch)<br><br>=C2=
=A06) Multi-catch and more precise rethrow: In presence of a multi-catch, t=
he AST looks like:<br>=C2=A0<br>+--try<br>=C2=A0=C2=A0=C2=A0 |<br>=C2=A0=C2=
=A0=C2=A0 +--SLIST (list of statements of the try block)<br>




=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 ...<br>=C2=A0=C2=A0=C2=A0 +--LITERAL_CATCH<br>=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 +--LPAREN<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 +--PARAMETER_DE=
F<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |<b=
r>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 +--MOD=
IFIERS<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 +--TYPE<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 +--IDENT (containing th=
e first exception to catch, or a DOT node if it is a fully qualified type)<=
br>




=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 +--IDENT (containing the second exception to catch, or a DO=
T node if it is a fully qualified type)<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 +--...<br>=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 +--IDENT (n=
ame of the exception variable)<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 +--RPAREN<br>




=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 +--SLIST (list of statements of =
the catch block)<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 |<br>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0 ...<br><br>Kind regards,<br><font color=3D"#888888">
=C2=A0Dinesh Bolkensteyn</font><div><div></div><div><br><br><div class=3D"g=
mail_quote">On Tue, Aug 16, 2011 at 10:07 AM, Freddy Mallet <span dir=3D"lt=
r">&lt;<a href=3D"mailto:[email protected]" target=3D"_blank">f=
[email protected]</a>&gt;</span> wrote:<br>




<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex"><div>Thanks for your answer Oliver ! So we&#=
39;ll start with the first baby step to patch the current Antlr grammar. We=
 should get back to you during the upcoming weeks.=C2=A0</div>




<div><br></div><div>Kind regards,</div><div>Freddy<br clear=3D"all">
----------------------------------------<br>Freddy Mallet<br><a href=3D"htt=
p://www.SonarSource.org" target=3D"_blank">www.SonarSource.org</a><br><a hr=
ef=3D"http://www.SonarSource.com" target=3D"_blank">www.SonarSource.com</a>=
<br>





----------------------------------------<br>
<br><br><div class=3D"gmail_quote">On Tue, Aug 16, 2011 at 4:34 AM, Oliver =
Burn <span dir=3D"ltr">&lt;<a href=3D"mailto:[email protected]" target=
=3D"_blank">[email protected]</a>&gt;</span> wrote:<br><blockquote clas=
s=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;pad=
ding-left:1ex">





Hi Freddy,<br><br>Thanks for your kind offer.<br><br>My preference for a ne=
w grammar is motivated by the following thoughts:<br><ul><li>Upgrade from A=
NTLRv2 to ANTLRv3 - there a numerous benefits to not being left behind, inc=
luding newer features and the awesome ANTLRworks</li>






<li>The existing grammar has evolved along with the language - a fresh impl=
ementation maybe cleaner</li><li>Hoping to find a ANTLR grammar out there t=
hat somebody is maintaining. Bare in mind that when Java 8 comes out, where=
 will be a series of changes to the grammar required.</li>






</ul>That all said, it would be easier to patch the existing grammar. I wou=
ld happily take a patch that does that. :-)<br><br>Regards,<br>Oliver<br><b=
r><div class=3D"gmail_quote"><div><div></div><div>On Tue, Aug 16, 2011 at 0=
1:57, Freddy Mallet <span dir=3D"ltr">&lt;<a href=3D"mailto:freddy.mallet@g=
mail.com" target=3D"_blank">[email protected]</a>&gt;</span> wrote:<b=
r>






</div></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;bo=
rder-left:1px #ccc solid;padding-left:1ex"><div><div></div><div>Hi Oliver,<=
div><br></div><div>We would be happy to contribute to the support of java 7=
 [1]. Upgrading the current Antlr grammar should not be too complex (even i=
f not simple) in order to support new java language enhancements :=C2=A0</d=
iv>







<div><div><ul><li>Strings in switch statements</li><li>try-with-resources s=
tatements</li><li>improved type inference for generic instance creation (&q=
uot;diamond&quot;)</li><li>better integral literals</li><li>and improved ex=
ception handling (multi-catch)</li>







</ul></div></div><div>In ticket=C2=A03328367 [1], you mention the option to=
 fully rewrite the Antlr grammar instead of simply updating the existing on=
e. In few words, could you explain what would be the advantages of this sol=
ution and why you seem to prefer this second solution ?</div>







<div><br></div><div>Thanks</div><div>Freddy</div><div><br></div><div>[1] - =
<a href=3D"http://sourceforge.net/tracker/?func=3Ddetail&amp;aid=3D3328367&=
amp;group_id=3D29721&amp;atid=3D397078" target=3D"_blank">http://sourceforg=
e.net/tracker/?func=3Ddetail&amp;aid=3D3328367&amp;group_id=3D29721&amp;ati=
d=3D397078</a> you seem to be=C2=A0<br clear=3D"all">







----------------------------------------<br><font color=3D"#888888">Freddy =
Mallet<br><a href=3D"http://www.SonarSource.org" target=3D"_blank">www.Sona=
rSource.org</a><br><a href=3D"http://www.SonarSource.com" target=3D"_blank"=
>www.SonarSource.com</a><br>







----------------------------------------<br>
</font></div>
<br></div></div>-----------------------------------------------------------=
-------------------<br>
uberSVN&#39;s rich system and user administration capabilities and model<br=
>
configuration take the hassle out of deploying and managing Subversion and<=
br>
the tools developers use with it. Learn more about uberSVN and get a free<b=
r>
download at: =C2=A0<a href=3D"http://p.sf.net/sfu/wandisco-dev2dev" target=
=3D"_blank">http://p.sf.net/sfu/wandisco-dev2dev</a><br>
<br>_______________________________________________<br>
Checkstyle-user mailing list<br>
<a href=3D"mailto:[email protected]" target=3D"_blank">=
[email protected]</a><br>
<a href=3D"https://lists.sourceforge.net/lists/listinfo/checkstyle-user" ta=
rget=3D"_blank">https://lists.sourceforge.net/lists/listinfo/checkstyle-use=
r</a><br>
<br></blockquote></div><br>
<br>-----------------------------------------------------------------------=
-------<br>
uberSVN&#39;s rich system and user administration capabilities and model<br=
>
configuration take the hassle out of deploying and managing Subversion and<=
br>
the tools developers use with it. Learn more about uberSVN and get a free<b=
r>
download at: =C2=A0<a href=3D"http://p.sf.net/sfu/wandisco-dev2dev" target=
=3D"_blank">http://p.sf.net/sfu/wandisco-dev2dev</a><br>
<br>_______________________________________________<br>
Checkstyle-user mailing list<br>
<a href=3D"mailto:[email protected]" target=3D"_blank">=
[email protected]</a><br>
<a href=3D"https://lists.sourceforge.net/lists/listinfo/checkstyle-user" ta=
rget=3D"_blank">https://lists.sourceforge.net/lists/listinfo/checkstyle-use=
r</a><br>
<br></blockquote></div><br></div>
</blockquote></div><br>
</div></div></blockquote></div><br><br clear=3D"all"><div><br></div></div><=
/div><font color=3D"#888888">-- <br>Best regards,<br>Evgeny Mandrikov aka G=
odin &lt;<a href=3D"http://godin.net.ru" target=3D"_blank">http://godin.net=
.ru</a>&gt;<br>


<a href=3D"http://twitter.com/_godin_" target=3D"_blank">http://twitter.com=
/_godin_</a><br>

</font></div>
</blockquote></div><br><br clear=3D"all"><div><br></div>-- <br>Best regards=
,<br>Evgeny Mandrikov aka Godin &lt;<a href=3D"http://godin.net.ru" target=
=3D"_blank">http://godin.net.ru</a>&gt;<br><a href=3D"http://twitter.com/_g=
odin_" target=3D"_blank">http://twitter.com/_godin_</a><br>



</div></div></blockquote></div><br></div>

--00151758f366a2685204ac37d7b1--


--===============2061160934235253725==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

------------------------------------------------------------------------------
Special Offer -- Download ArcSight Logger for FREE!
Finally, a world-class log management solution at an even better 
price-free! And you'll get a free "Love Thy Logs" t-shirt when you
download Logger. Secure your free ArcSight Logger TODAY!
http://p.sf.net/sfu/arcsisghtdev2dev
--===============2061160934235253725==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Checkstyle-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/checkstyle-user

--===============2061160934235253725==--