clirr-devel Mailing List for Clirr (Page 19)
Status: Alpha
Brought to you by:
lkuehne
You can subscribe to this list here.
2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(15) |
Oct
(23) |
Nov
|
Dec
(25) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(9) |
Feb
|
Mar
|
Apr
|
May
(76) |
Jun
(207) |
Jul
(242) |
Aug
(42) |
Sep
(33) |
Oct
|
Nov
(7) |
Dec
(1) |
2005 |
Jan
|
Feb
|
Mar
(5) |
Apr
|
May
|
Jun
|
Jul
(3) |
Aug
(66) |
Sep
(38) |
Oct
(6) |
Nov
|
Dec
(2) |
2006 |
Jan
(17) |
Feb
(5) |
Mar
(28) |
Apr
(6) |
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
(1) |
Nov
(1) |
Dec
(7) |
2007 |
Jan
|
Feb
|
Mar
|
Apr
(7) |
May
(33) |
Jun
(4) |
Jul
(3) |
Aug
|
Sep
(5) |
Oct
|
Nov
|
Dec
|
2008 |
Jan
(4) |
Feb
(3) |
Mar
(2) |
Apr
|
May
(1) |
Jun
|
Jul
(6) |
Aug
(8) |
Sep
(5) |
Oct
(20) |
Nov
(7) |
Dec
(9) |
2009 |
Jan
(8) |
Feb
(3) |
Mar
(20) |
Apr
(10) |
May
(40) |
Jun
(11) |
Jul
(23) |
Aug
(4) |
Sep
(1) |
Oct
(1) |
Nov
|
Dec
(2) |
2010 |
Jan
(5) |
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
(2) |
Sep
|
Oct
|
Nov
|
Dec
|
2011 |
Jan
|
Feb
|
Mar
|
Apr
(3) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
2012 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
2013 |
Jan
|
Feb
|
Mar
|
Apr
(6) |
May
(22) |
Jun
(2) |
Jul
|
Aug
|
Sep
|
Oct
(2) |
Nov
(1) |
Dec
(2) |
2014 |
Jan
(5) |
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
2015 |
Jan
(1) |
Feb
(2) |
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2016 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
2017 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <lk...@us...> - 2004-08-15 11:01:22
|
Update of /cvsroot/clirr/clirr/maven In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24148/maven Added Files: maven.xml Log Message: added dist goal to build all modules from toplevel project --- NEW FILE --- <?xml version="1.0"?> <project default="dist" xmlns:u="jelly:util" xmlns:j="jelly:core"> <goal name="dist" prereqs="plugin:install"/> </project> |
From: <lk...@us...> - 2004-08-15 10:58:22
|
Update of /cvsroot/clirr/clirr In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23670 Modified Files: project.properties Log Message: removed entries that now belong to the core Index: project.properties =================================================================== RCS file: /cvsroot/clirr/clirr/project.properties,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- project.properties 10 Jul 2004 13:48:25 -0000 1.8 +++ project.properties 15 Aug 2004 10:58:07 -0000 1.9 @@ -5,24 +5,9 @@ maven.checkstyle.header.file=${basedir}/conf/javaheader.txt maven.checkstyle.fail.on.violation=true -# include api overview page, will work only with Maven version > 1.0-rc1 -maven.javadoc.overview=${pom.build.sourceDirectory}/net/sf/clirr/overview.html - # hide irrelevant stuff from the nav bar maven.xdoc.poweredby.image= maven.xdoc.developmentProcessUrl= -maven.junit.fork=true - -# tell tests where testinput is -maven.junit.sysproperties=testinput -testinput=${basedir}/target/testinput - -# class to execute from all-in-one uberjar -maven.uberjar.main=net.sf.clirr.cli.Clirr - -# used by test pregoal to generate test input, see maven.xml -clirr.testlibs=testlib-v1, testlib-v2 - # place subproject's sites into root context of aggregating site maven.multiproject.aggregateDir= |
From: Vincent M. <vma...@pi...> - 2004-08-12 07:29:19
|
> -----Original Message----- > From: cli...@li... [mailto:clirr-devel- > ad...@li...] On Behalf Of Lars K=FChne > Sent: mardi 10 ao=FBt 2004 21:40 > To: cli...@li... > Subject: Re: [Clirr-devel] Multiproject build fails >=20 > Vincent Massol wrote: >=20 > >>[...] > >>Root cause > >>java.lang.NoClassDefFoundError: > >>org/netbeans/lib/cvsclient/event/CVSListener > >>[...] > >> > >>Any ideas? > >> > >> > > > >It probably means that your changelog plugin is not properly = installed on > >your machine and that it hasn't automatically downloaded the netbeans > >cvsclient jar the first time it was run. Try deleting your plugin = cache > and > >run it again. > > > > >=20 > Thanks, that helped. I can now build both subprojects and the combined > website, but I think there is currently no way to do it all in one = step > (jar:install isn't being called). I'll try to resolve that ASAP, but > help would be much appreciated. To do it all in one step, you can create a custom goal in the the = toplevel maven.xml: <goal name=3D"dist"> <j:set var=3D"goal" value=3D"dist"/> <attainGoal name=3D"dist"/> </goal> <goal name=3D"dist-site" prereqs=3D"dist,multiproject:site"/> And then in each subproject's maven.xml, have a custom dist goal. For example for core: <goal name=3D"dist" prereqs=3D"jar:install"/> For maven: <goal name=3D"dist" prereqs=3D"plugin:install"/> -Vincent |
From: <lak...@t-...> - 2004-08-10 19:38:38
|
Vincent Massol wrote: >>[...] >>Root cause >>java.lang.NoClassDefFoundError: >>org/netbeans/lib/cvsclient/event/CVSListener >>[...] >> >>Any ideas? >> >> > >It probably means that your changelog plugin is not properly installed on >your machine and that it hasn't automatically downloaded the netbeans >cvsclient jar the first time it was run. Try deleting your plugin cache and >run it again. > > Thanks, that helped. I can now build both subprojects and the combined website, but I think there is currently no way to do it all in one step (jar:install isn't being called). I'll try to resolve that ASAP, but help would be much appreciated. Lars |
From: Vincent M. <vma...@pi...> - 2004-08-08 09:38:04
|
> -----Original Message----- > From: cli...@li... [mailto:clirr-devel- > ad...@li...] On Behalf Of Lars K=FChne > Sent: dimanche 8 ao=FBt 2004 11:03 > To: cli...@li... > Subject: Re: [Clirr-devel] Multiproject build fails >=20 > Vincent Massol wrote: >=20 > >Hi Lars, > > > >Yes, it should be done by the core build automatically. In the first > version > >I sent to you by email (the zip file) you'll see that I had created a > "dist" > >goal in each subproject that calls the necessary goals. > > > >You need to call the "jar:install" goal on the core project to = install > the > >jar artifact to your local repository. > > > > > > >=20 > Thanks. After jar:install the situation has improved, but I now get = the > following error when the maven plugin website is generated: >=20 > > maven -e multiproject:site >=20 > [...] >=20 > site:run-reports: > [echo] Generating the Changes... > changes:report: >=20 > [echo] Generating the Change Log... > maven-changelog-plugin:report: > [echo] Generating the changelog report >=20 > BUILD FAILED > File...... > /home/lk/.maven/cache/maven-multiproject-plugin-1.3.1/plugin.jelly > Element... maven:reactor > Line...... 103 > Column.... 9 > Unable to obtain goal [site] -- > /home/lk/.maven/cache/maven-changelog-plugin-1.7.1/plugin.jelly:83:15: > <changelog:changelog> org/netbeans/lib/cvsclient/event/CVSListener > [...] > Root cause > java.lang.NoClassDefFoundError: > org/netbeans/lib/cvsclient/event/CVSListener > [...] >=20 > Any ideas? It probably means that your changelog plugin is not properly installed = on your machine and that it hasn't automatically downloaded the netbeans cvsclient jar the first time it was run. Try deleting your plugin cache = and run it again. -Vincent |
From: <lak...@t-...> - 2004-08-08 09:02:46
|
Vincent Massol wrote: >Hi Lars, > >Yes, it should be done by the core build automatically. In the first version >I sent to you by email (the zip file) you'll see that I had created a "dist" >goal in each subproject that calls the necessary goals. > >You need to call the "jar:install" goal on the core project to install the >jar artifact to your local repository. > > > Thanks. After jar:install the situation has improved, but I now get the following error when the maven plugin website is generated: > maven -e multiproject:site [...] site:run-reports: [echo] Generating the Changes... changes:report: [echo] Generating the Change Log... maven-changelog-plugin:report: [echo] Generating the changelog report BUILD FAILED File...... /home/lk/.maven/cache/maven-multiproject-plugin-1.3.1/plugin.jelly Element... maven:reactor Line...... 103 Column.... 9 Unable to obtain goal [site] -- /home/lk/.maven/cache/maven-changelog-plugin-1.7.1/plugin.jelly:83:15: <changelog:changelog> org/netbeans/lib/cvsclient/event/CVSListener [...] Root cause java.lang.NoClassDefFoundError: org/netbeans/lib/cvsclient/event/CVSListener [...] Any ideas? Lars |
From: Vincent M. <vma...@pi...> - 2004-08-07 11:21:34
|
Hi Lars, Yes, it should be done by the core build automatically. In the first = version I sent to you by email (the zip file) you'll see that I had created a = "dist" goal in each subproject that calls the necessary goals. You need to call the "jar:install" goal on the core project to install = the jar artifact to your local repository. -Vincent > -----Original Message----- > From: cli...@li... [mailto:clirr-devel- > ad...@li...] On Behalf Of Lars K=FChne > Sent: vendredi 6 ao=FBt 2004 13:58 > To: cli...@li... > Subject: [Clirr-devel] Multiproject build fails >=20 > Hi, >=20 > with the Maven plugin added, I'm having trouble getting the = multiproject > build to work: >=20 > > maven multiproject:site >=20 > Our processing order: > Clirr Core > Clirr Maven plugin > +---------------------------------------- > | Generating site for Clirr Core > | Memory: 3M/4M > +---------------------------------------- > [...] >=20 > +---------------------------------------- > | Generating site for Clirr Maven plugin > | Memory: 22M/33M > +---------------------------------------- > Attempting to download clirr-core-0.4-SNAPSHOT.jar. > WARNING: Failed to download clirr-core-0.4-SNAPSHOT.jar. >=20 > BUILD FAILED >=20 >=20 > What needs to be done to install the core-snapshot to my local = repository? > Should that be done by the core build automatically? >=20 > Lars >=20 >=20 >=20 > ------------------------------------------------------- > This SF.Net email is sponsored by OSTG. Have you noticed the changes = on > Linux.com, ITManagersJournal and NewsForge in the past few weeks? Now, > one more big change to announce. We are now OSTG- Open Source = Technology > Group. Come see the changes on the new OSTG site. www.ostg.com > _______________________________________________ > Clirr-devel mailing list > Cli...@li... > https://lists.sourceforge.net/lists/listinfo/clirr-devel |
From: Vincent M. <vma...@pi...> - 2004-08-07 11:17:36
|
> -----Original Message----- > From: cli...@li... [mailto:clirr-devel- > ad...@li...] On Behalf Of Lars K=FChne > Sent: vendredi 6 ao=FBt 2004 13:53 > To: cli...@li... > Subject: [Clirr-devel] Release 0.4 >=20 > Hi guys, >=20 > I'm back from vacation. What remains to be done for the 0.4 release? = Any > bugs that absolutely *have* to be fixed? Vincent, did you resolve the > problems with the Maven plugin when testing against cactus? Nope. I need to create a sample project that can be used as acceptance testing for the Maven plugin. Last time I tried it on the Cactus = framework project it was still failing with some not-so-useful exception = (something like a NPE). >=20 > What is "best practice" for a multiproject release? Do people tag and > release each subproject individually or do they tag everything and > release the results of the multiproject build? It's up to us really. I personally like to release all subprojects = together. For example we could release a 0.4 now (which won't include the Maven = plugin as we've not proved it's working yet) and then later on release a 0.5 = which includes the Maven plugin. I think doing it this way is easier as otherwise we have to test the = version of each subproject with the past releases of all the other subprojects = (more integration hell). But then I'm fine either way... Thanks -Vincent |
From: Simon K. <si...@ec...> - 2004-08-07 00:15:55
|
On Fri, 2004-08-06 at 23:52, Lars K=FChne wrote: > Hi guys, >=20 > I'm back from vacation. What remains to be done for the 0.4 release? An= y=20 > bugs that absolutely *have* to be fixed? Vincent, did you resolve the=20 > problems with the Maven plugin when testing against cactus? >=20 > What is "best practice" for a multiproject release? Do people tag and=20 > release each subproject individually or do they tag everything and=20 > release the results of the multiproject build? Hi Lars, Welcome back. I'm not aware of any critical bugs. Lots of features still waiting to be added, but no bugs. I think a 0.4 release would be nice. Other issues: Before you left, we were discussing the way MethodSetCheck "pairs up" methods, and reports "changed" rather than "deleted" for the old prototype and "added" for the new one. We agreed that if the changed method previously overrode an inherited method, then we should instead report "deleted". I tried to implement this, but couldn't come up with a solution that wasn't seriously ugly. Maybe you could give this a go? I'm also getting concerned in general about how complex the MethodSetCheck class is getting. And there are 3 or 4 requests in the bugtracker from Stephen Colebourne that mean we need to add even more code to this class. I think we need to figure out a way to break this down into a set of smaller classes somehow. Cheers, Simon |
From: <lak...@t-...> - 2004-08-06 11:48:13
|
Hi, with the Maven plugin added, I'm having trouble getting the multiproject build to work: > maven multiproject:site Our processing order: Clirr Core Clirr Maven plugin +---------------------------------------- | Generating site for Clirr Core | Memory: 3M/4M +---------------------------------------- [...] +---------------------------------------- | Generating site for Clirr Maven plugin | Memory: 22M/33M +---------------------------------------- Attempting to download clirr-core-0.4-SNAPSHOT.jar. WARNING: Failed to download clirr-core-0.4-SNAPSHOT.jar. BUILD FAILED What needs to be done to install the core-snapshot to my local repository? Should that be done by the core build automatically? Lars |
From: <lak...@t-...> - 2004-08-06 11:43:18
|
Hi guys, I'm back from vacation. What remains to be done for the 0.4 release? Any bugs that absolutely *have* to be fixed? Vincent, did you resolve the problems with the Maven plugin when testing against cactus? What is "best practice" for a multiproject release? Do people tag and release each subproject individually or do they tag everything and release the results of the multiproject build? Lars |
From: Simon K. <s_k...@us...> - 2004-07-23 08:15:05
|
Update of /cvsroot/clirr/clirr/core/xdocs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27682/xdocs Modified Files: exegesis.xml Log Message: Added explanation for new msg 6011: MSG_REMOVED_CONSTANT_FIELD Index: exegesis.xml =================================================================== RCS file: /cvsroot/clirr/clirr/core/xdocs/exegesis.xml,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- exegesis.xml 20 Jul 2004 07:58:42 -0000 1.4 +++ exegesis.xml 23 Jul 2004 08:14:56 -0000 1.5 @@ -420,6 +420,24 @@ </p> </section> + <section name="6011 - Removed Constant Field"> + <p>Binary Severity: <code>WARNING</code></p> + <p>Source Severity: <code>ERROR</code></p> + <p> + The new class has removed a field present in the old version. + Pre-existing source code which directly accesses that field will no + longer be valid. + </p> + <p> + Previously, however, the field was final and was initialised with a + constant value. Therefore code compiled against the previous version + of the class will have inlined this constant and will continue to + work, using the previous value of this field. A warning is issued + as this is often not desirable behaviour. However it is not a + binary incompatibility. + </p> + </section> + <section name="7000 - Method now in Superclass"> <p>Severity: <code>INFO</code></p> <p> |
From: Simon K. <s_k...@us...> - 2004-07-23 08:14:27
|
Update of /cvsroot/clirr/clirr/core/src/testinput/testlib-v2/testlib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27581/src/testinput/testlib-v2/testlib Modified Files: MembersChange.java Log Message: New fields to test MSG_REMOVED_CONSTANT_FIELD Index: MembersChange.java =================================================================== RCS file: /cvsroot/clirr/clirr/core/src/testinput/testlib-v2/testlib/MembersChange.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- MembersChange.java 15 Jul 2004 17:06:30 -0000 1.1 +++ MembersChange.java 23 Jul 2004 08:14:19 -0000 1.2 @@ -18,11 +18,13 @@ public static final int fin5 = 1; // changed compile time constant public static final boolean fin6 = Boolean.FALSE.booleanValue(); // removed value of compile time constant + // public static final int fin7 = 7; // removed constant field public int pub1 = 0; public static int pub2 = 0; // added static public final int pub3 = 0; // added final public int pub4 = 0; + // public int pub5 = 0; // removed non-constant field protected int prot1 = 0; protected int prot2 = 0; |
From: Simon K. <s_k...@us...> - 2004-07-23 08:13:54
|
Update of /cvsroot/clirr/clirr/core/src/testinput/testlib-v1/testlib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27497/src/testinput/testlib-v1/testlib Modified Files: MembersChange.java Log Message: Add fields to test new "MSG_REMOVED_CONSTANT_FIELD" check. Index: MembersChange.java =================================================================== RCS file: /cvsroot/clirr/clirr/core/src/testinput/testlib-v1/testlib/MembersChange.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- MembersChange.java 15 Jul 2004 17:06:30 -0000 1.1 +++ MembersChange.java 23 Jul 2004 08:13:44 -0000 1.2 @@ -16,11 +16,13 @@ public static final int fin4 = 0; public static final int fin5 = 0; public static final boolean fin6 = false; + public static final int fin7 = 7; public int pub1 = 0; public int pub2 = 0; public int pub3 = 0; public int pub4 = 0; + public int pub5 = 0; protected int prot1 = 0; protected int prot2 = 0; |
From: Simon K. <s_k...@us...> - 2004-07-23 08:13:15
|
Update of /cvsroot/clirr/clirr/core/src/test/net/sf/clirr/core/internal/checks In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27369/src/test/net/sf/clirr/core/internal/checks Modified Files: FieldSetCheckTest.java Log Message: Add expected diffs due to new test fields added to testinput libs. Index: FieldSetCheckTest.java =================================================================== RCS file: /cvsroot/clirr/clirr/core/src/test/net/sf/clirr/core/internal/checks/FieldSetCheckTest.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- FieldSetCheckTest.java 18 Jul 2004 01:10:46 -0000 1.2 +++ FieldSetCheckTest.java 23 Jul 2004 08:13:06 -0000 1.3 @@ -34,6 +34,8 @@ new ExpectedDiff("Changed type of field obj2 from java.lang.Boolean to java.lang.String", Severity.ERROR, "testlib.MembersChange", null, "obj2"), new ExpectedDiff("Value of field fin6 is no longer a compile-time constant", Severity.WARNING, "testlib.MembersChange", null, "fin6"), new ExpectedDiff("Value of compile-time constant fin5 has been changed", Severity.WARNING, "testlib.MembersChange", null, "fin5"), + new ExpectedDiff("Removed field pub5", Severity.ERROR, "testlib.MembersChange", null, "pub5"), + new ExpectedDiff("Field fin7 has been removed, but it was previously a constant", Severity.WARNING, Severity.ERROR, "testlib.MembersChange", null, "fin7"), }; verify(expected); } |
From: Simon K. <s_k...@us...> - 2004-07-23 08:12:09
|
Update of /cvsroot/clirr/clirr/core/src/java/net/sf/clirr/core In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27178/src/java/net/sf/clirr/core Modified Files: ApiDifference.java Log Message: Fix checkstyle complaints Index: ApiDifference.java =================================================================== RCS file: /cvsroot/clirr/clirr/core/src/java/net/sf/clirr/core/ApiDifference.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- ApiDifference.java 23 Jul 2004 08:07:33 -0000 1.4 +++ ApiDifference.java 23 Jul 2004 08:11:52 -0000 1.5 @@ -290,20 +290,20 @@ /** * Build a string containing a string representation of most of the - * fields in this object, but not the message-id or the string + * fields in this object, but not the message-id or the string * translation thereof. */ private void appendCommonData(StringBuffer buf) { buf.append(" ("); buf.append(binaryCompatibilitySeverity); - + if (sourceCompatibilitySeverity != binaryCompatibilitySeverity) { buf.append(","); buf.append(sourceCompatibilitySeverity); } - + buf.append(") - "); buf.append(affectedClass); buf.append("["); |
From: Simon K. <s_k...@us...> - 2004-07-23 08:11:41
|
Update of /cvsroot/clirr/clirr/core/src/java/net/sf/clirr/core/internal/checks In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27029/src/java/net/sf/clirr/core/internal/checks Modified Files: FieldSetCheck.java Log Message: Removing a field which is final and initialised with a constant value is a source incompatibility, but only a binary warning, because the constant will have been inlined in other classes. Index: FieldSetCheck.java =================================================================== RCS file: /cvsroot/clirr/clirr/core/src/java/net/sf/clirr/core/internal/checks/FieldSetCheck.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- FieldSetCheck.java 16 Jul 2004 10:36:38 -0000 1.4 +++ FieldSetCheck.java 23 Jul 2004 08:11:16 -0000 1.5 @@ -53,6 +53,7 @@ private static final Message MSG_FIELD_NOW_STATIC = new Message(6008); private static final Message MSG_FIELD_MORE_ACCESSIBLE = new Message(6009); private static final Message MSG_FIELD_LESS_ACCESSIBLE = new Message(6010); + private static final Message MSG_CONSTANT_FIELD_REMOVED = new Message(6011); private static final class FieldNameComparator implements Comparator { @@ -107,16 +108,27 @@ { if (scopeSelector.isSelected(bField)) { - // TODO: This is not an error if the field is a - // compile-time constant, because the value will - // have been inlined into callers [Q: is this - // mandatory, or only allowed by the java spec?]. - // See bugtracker #961222 - final String name = bField.getName(); - fireDiff(MSG_FIELD_REMOVED, - getSeverity(baselineClass, bField, Severity.ERROR), - baselineClass, bField, null); + if ((bField.getConstantValue() != null) && bField.isFinal()) + { + // Fields which are compile-time constants will have + // been inlined into callers; even though the field + // has been deleted, the caller will continue to use + // the old value. The result is therefore not + // technically a binary incompatibility, though it is + // a source-code incompatibility. + // See bugtracker #961222 + fireDiff(MSG_CONSTANT_FIELD_REMOVED, + getSeverity(baselineClass, bField, Severity.WARNING), + getSeverity(baselineClass, bField, Severity.ERROR), + baselineClass, bField, null); + } + else + { + fireDiff(MSG_FIELD_REMOVED, + getSeverity(baselineClass, bField, Severity.ERROR), + baselineClass, bField, null); + } } } else if (scopeSelector.isSelected(bField) || scopeSelector.isSelected(cField)) @@ -245,10 +257,23 @@ Field field, String[] args) { + fireDiff(msg, severity, severity, clazz, field, args); + } + + private void fireDiff( + Message msg, + Severity binarySeverity, + Severity sourceSeverity, + JavaClass clazz, + Field field, + String[] args) + { final String className = clazz.getClassName(); final ApiDifference diff = new ApiDifference( - msg, severity, className, null, field.getName(), args); + msg, + binarySeverity, sourceSeverity, + className, null, field.getName(), args); getApiDiffDispatcher().fireDiff(diff); } } |
From: Simon K. <s_k...@us...> - 2004-07-23 08:07:42
|
Update of /cvsroot/clirr/clirr/core/src/java/net/sf/clirr/core In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26466/src/java/net/sf/clirr/core Modified Files: ApiDifference.java Log Message: toString() method now reports both binary and source severity level, if they are different. Previously, only binary severity was reported. Index: ApiDifference.java =================================================================== RCS file: /cvsroot/clirr/clirr/core/src/java/net/sf/clirr/core/ApiDifference.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- ApiDifference.java 18 Jul 2004 00:58:35 -0000 1.3 +++ ApiDifference.java 23 Jul 2004 08:07:33 -0000 1.4 @@ -270,8 +270,10 @@ */ public String toString() { - return "" + message.getId() + " (" + binaryCompatibilitySeverity + ") - " - + affectedClass + '[' + affectedField + '/' + affectedMethod + ']'; + StringBuffer buf = new StringBuffer(); + buf.append(message.getId()); + appendCommonData(buf); + return buf.toString(); } /** @@ -280,7 +282,34 @@ */ public String toString(MessageTranslator translator) { - return getReport(translator) + " (" + binaryCompatibilitySeverity + ") - " - + affectedClass + '[' + affectedField + '/' + affectedMethod + ']'; + StringBuffer buf = new StringBuffer(); + buf.append(getReport(translator)); + appendCommonData(buf); + return buf.toString(); + } + + /** + * Build a string containing a string representation of most of the + * fields in this object, but not the message-id or the string + * translation thereof. + */ + private void appendCommonData(StringBuffer buf) + { + buf.append(" ("); + buf.append(binaryCompatibilitySeverity); + + if (sourceCompatibilitySeverity != binaryCompatibilitySeverity) + { + buf.append(","); + buf.append(sourceCompatibilitySeverity); + } + + buf.append(") - "); + buf.append(affectedClass); + buf.append("["); + buf.append(affectedField); + buf.append("/"); + buf.append(affectedMethod); + buf.append("]"); } } |
From: Simon K. <s_k...@us...> - 2004-07-23 08:05:55
|
Update of /cvsroot/clirr/clirr/core/src/conf/net/sf/clirr/core In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26302/src/conf/net/sf/clirr/core Modified Files: EventMessages_en.properties Log Message: Add check for removal of final field with constant value. This is a source-code incompatibility, but not a binary incompatibility. Index: EventMessages_en.properties =================================================================== RCS file: /cvsroot/clirr/clirr/core/src/conf/net/sf/clirr/core/EventMessages_en.properties,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- EventMessages_en.properties 20 Jul 2004 07:55:23 -0000 1.3 +++ EventMessages_en.properties 23 Jul 2004 08:05:46 -0000 1.4 @@ -56,7 +56,7 @@ m6008=Field {2} is now static m6009=Accessibility of field {2} has been increased from {3} to {4} m6010=Accessibility of field {2} has been weakened from {3} to {4} - +m6011=Field {2} has been removed, but it was previously a constant #----------------------------------------------------------------------------- # MethodSetCheck messages #----------------------------------------------------------------------------- |
From: Simon K. <s_k...@us...> - 2004-07-20 07:58:50
|
Update of /cvsroot/clirr/clirr/core/xdocs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18591/xdocs Modified Files: exegesis.xml Log Message: Added descriptions for messages 7003, 8000, 8001 Index: exegesis.xml =================================================================== RCS file: /cvsroot/clirr/clirr/core/xdocs/exegesis.xml,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- exegesis.xml 18 Jul 2004 01:14:19 -0000 1.3 +++ exegesis.xml 20 Jul 2004 07:58:42 -0000 1.4 @@ -466,6 +466,16 @@ </p> </section> + <section name="7003 - Method Overide Removed"> + <p>Severity: <code>INFO</code></p> + <p> + The specified method on the old class or interface was overriding an + inherited definition. The new class or interface no longer has this + method explicitly declared on it, but it still inherits a definition + so there is no binary incompatibility. + </p> + </section> + <section name="7004 - Method Argument Count Changed"> <p>Severity: <code>ERROR</code></p> <p> @@ -664,6 +674,23 @@ is thrown at the time the method invocation is attempted. </p> </section> + + <section name="8000 - Class Added"> + <p>Severity: <code>INFO</code></p> + <p> + The new version of the library has a class which was not present + in the old version. + </p> + </section> + + <section name="8001 - Class Removed"> + <p>Severity: <code>ERROR</code></p> + <p> + The new version of the library no longer contains the specified + class. + </p> + </section> + </section> </body> </document> |
From: Simon K. <s_k...@us...> - 2004-07-20 07:57:22
|
Update of /cvsroot/clirr/clirr/core/src/java/net/sf/clirr/core/internal/checks In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18235/src/java/net/sf/clirr/core/internal/checks Modified Files: MethodSetCheck.java Log Message: Detect case where the removed method used to override an inherited definition, and that inherited definition still exists. In this case, report MSG_METHOD_OVERRIDE_REMOVED, not MSG_METHOD_NOW_IN_INTERFACE or MSG_METHOD_NOW_IN_SUPERCLASS. Index: MethodSetCheck.java =================================================================== RCS file: /cvsroot/clirr/clirr/core/src/java/net/sf/clirr/core/internal/checks/MethodSetCheck.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- MethodSetCheck.java 18 Jul 2004 01:09:15 -0000 1.5 +++ MethodSetCheck.java 20 Jul 2004 07:57:14 -0000 1.6 @@ -50,7 +50,7 @@ private static final Message MSG_METHOD_NOW_IN_SUPERCLASS = new Message(7000); private static final Message MSG_METHOD_NOW_IN_INTERFACE = new Message(7001); private static final Message MSG_METHOD_REMOVED = new Message(7002); - // 7003 unused + private static final Message MSG_METHOD_OVERRIDE_REMOVED = new Message(7003); private static final Message MSG_METHOD_ARGCOUNT_CHANGED = new Message(7004); private static final Message MSG_METHOD_PARAMTYPE_CHANGED = new Message(7005); private static final Message MSG_METHOD_RETURNTYPE_CHANGED = new Message(7006); @@ -310,7 +310,7 @@ } /** - * Searches the class hierarchy for a method that has a certtain signature. + * Searches the class hierarchy for a method that has a certain signature. * @param methodSignature the sig we're looking for * @param clazz class where search starts * @return class name of a superclass of clazz, might be null @@ -394,28 +394,64 @@ return; } - String methodSignature = getMethodId(oldClass, oldMethod); - String superClassName = findSuperClassWithSignature(methodSignature, currentClass); - String superInterfaceName = null; - if (oldMethod.isAbstract()) + String signature = getMethodId(oldClass, oldMethod); + + String oldBaseClassForMethod = findSuperClassWithSignature(signature, oldClass); + String oldInterfaceForMethod = findSuperInterfaceWithSignature(signature, oldClass); + + String newBaseClassForMethod = findSuperClassWithSignature(signature, currentClass); + String newInterfaceForMethod = findSuperInterfaceWithSignature(signature, currentClass); + + boolean oldInheritedMethod = (oldBaseClassForMethod != null) || (oldInterfaceForMethod != null); + boolean newInheritedMethod = (newBaseClassForMethod != null) || (newInterfaceForMethod != null); + + if (oldInheritedMethod && newInheritedMethod) + { + // Previously, this method overrode an inherited definition. + // The current version of the class doesn't have this + // method, but a parent class or interface still does, so this + // does not cause an incompatibility. + fireDiff(MSG_METHOD_OVERRIDE_REMOVED, + Severity.INFO, + oldClass, oldMethod, null); + } + else if (oldInheritedMethod) { - superInterfaceName = findSuperInterfaceWithSignature(methodSignature, currentClass); + // Previously, this method override an inherited definition. + // It isn't present in the current class, though, and neither is + // it present in the new class' ancestors. Best to just + // report it as removed... + fireDiff(MSG_METHOD_REMOVED, + getSeverity(oldClass, oldMethod, Severity.ERROR), + oldClass, oldMethod, null); } - - if (superClassName != null) + else if (newBaseClassForMethod != null) { + // Previously, this method didn't override anything. The current + // version of this class doesn't have this method any more, + // but an ancestor class now *does*. This is an instance + // of the pull-up refactoring pattern, where a method is moved + // to an ancestor class. fireDiff(MSG_METHOD_NOW_IN_SUPERCLASS, Severity.INFO, oldClass, oldMethod, - new String[] {superClassName}); + new String[] {newBaseClassForMethod}); } - else if (superInterfaceName != null) + else if (newInterfaceForMethod != null) { + // Previously, this method didn't override anything. The current + // version of this class doesn't have this method any more, + // but one of the implemented interfaces now *does*. This is an + // instance of the pull-up refactoring pattern, where a method is + // moved to an interface. fireDiff(MSG_METHOD_NOW_IN_INTERFACE, Severity.INFO, oldClass, oldMethod, - new String[] {superInterfaceName}); + new String[] {newInterfaceForMethod}); } else { + // This method wasn't anything special in the old class, and + // it isn't present in the new class either directly or via + // inheritance. fireDiff(MSG_METHOD_REMOVED, getSeverity(oldClass, oldMethod, Severity.ERROR), oldClass, oldMethod, null); |
From: Simon K. <s_k...@us...> - 2004-07-20 07:55:32
|
Update of /cvsroot/clirr/clirr/core/src/conf/net/sf/clirr/core In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18178/src/conf/net/sf/clirr/core Modified Files: EventMessages_en.properties Log Message: Added translations for new messages 7003 and 9000. Index: EventMessages_en.properties =================================================================== RCS file: /cvsroot/clirr/clirr/core/src/conf/net/sf/clirr/core/EventMessages_en.properties,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- EventMessages_en.properties 18 Jul 2004 00:52:55 -0000 1.2 +++ EventMessages_en.properties 20 Jul 2004 07:55:23 -0000 1.3 @@ -63,7 +63,7 @@ m7000=Method ''{1}'' is now implemented in superclass {3} m7001=Abstract method ''{1}'' is now specified by implemented interface {3} m7002=Method ''{1}'' has been removed -#m7003 no longer used +m7003=Method ''{1}'' has been removed, but an inherited definition exists. m7004=In method ''{1}'' the number of arguments has changed m7005=Parameter {3} of ''{1}'' has changed its type to {4} m7006=Return type of method ''{1}'' has been changed to {3} @@ -81,3 +81,12 @@ #----------------------------------------------------------------------------- m8000=Class {0} added m8001=Class {0} removed + + +#----------------------------------------------------------------------------- +# Assorted messages +#----------------------------------------------------------------------------- +m9000=Unable to determine the accessibility of class {0}. This generally \ + means that an invalid jarfile or classpath has been provided to the \ + clirr program. + |
From: Simon K. <s_k...@us...> - 2004-07-20 07:54:22
|
Update of /cvsroot/clirr/clirr/core/src/test/net/sf/clirr/core/internal/checks In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17968 Modified Files: MethodSetCheckTest.java Log Message: The existence of new message MSG_METHOD_OVERRIDE_REMOVED in MethodSetCheck causes a change in the ApiDifference report. Index: MethodSetCheckTest.java =================================================================== RCS file: /cvsroot/clirr/clirr/core/src/test/net/sf/clirr/core/internal/checks/MethodSetCheckTest.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- MethodSetCheckTest.java 18 Jul 2004 01:11:23 -0000 1.2 +++ MethodSetCheckTest.java 20 Jul 2004 07:54:14 -0000 1.3 @@ -33,7 +33,7 @@ new ExpectedDiff("Method 'public void moveToSuper()' is now implemented in superclass testlib.ComplexMethodMoveBase", Severity.INFO, "testlib.ComplexMethodMoveSub", "public void moveToSuper()", null), - new ExpectedDiff("Abstract method 'public void method()' is now specified by implemented interface testlib.BaseInterface", + new ExpectedDiff("Method 'public void method()' has been removed, but an inherited definition exists.", Severity.INFO, "testlib.AbstractImpl", "public void method()", null), // Constructor changes |
From: Simon K. <s_k...@us...> - 2004-07-20 07:53:31
|
Update of /cvsroot/clirr/clirr/core/src/test/net/sf/clirr/core/internal/checks In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17934 Modified Files: TestDiffListener.java Log Message: Generate much more readable error messages. Index: TestDiffListener.java =================================================================== RCS file: /cvsroot/clirr/clirr/core/src/test/net/sf/clirr/core/internal/checks/TestDiffListener.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- TestDiffListener.java 18 Jul 2004 01:12:42 -0000 1.3 +++ TestDiffListener.java 20 Jul 2004 07:53:23 -0000 1.4 @@ -42,16 +42,21 @@ MessageTranslator translator = new MessageTranslator(); StringBuffer buf = new StringBuffer(); - buf.append("Expected diff " + expected + " was not generated."); - buf.append(" Actual diffs generated were: "); - for(Iterator diffIter = diffs.iterator(); diffIter.hasNext();) + buf.append("Expected diff " + expected + " was not generated.\n"); + if (diffs.size() == 0) { - ApiDifference diff = (ApiDifference) diffIter.next(); - - buf.append(diff.toString(translator)); - if (diffIter.hasNext()) + buf.append("No diffs were generated."); + } + else + { + buf.append("Actual diffs generated were: \n"); + for(Iterator diffIter = diffs.iterator(); diffIter.hasNext();) { - buf.append(", "); + ApiDifference diff = (ApiDifference) diffIter.next(); + + buf.append(" * "); + buf.append(diff.toString(translator)); + buf.append("\n"); } } @@ -60,7 +65,7 @@ } StringBuffer buf = null; - for (Iterator it = diffs.iterator(); it.hasNext();) + for (Iterator it = diffs.iterator(); it.hasNext();) { ApiDifference actual = (ApiDifference) it.next(); @@ -76,13 +81,11 @@ if (buf == null) { buf = new StringBuffer(); - buf.append("Unexpected diffs: "); - } - else - { - buf.append(", "); + buf.append("Unexpected diffs:\n"); } + buf.append(" * "); buf.append(actual.toString(translator)); + buf.append("\n"); } } |
From: Simon K. <s_k...@us...> - 2004-07-20 07:52:52
|
Update of /cvsroot/clirr/clirr/core/src/test/net/sf/clirr/core In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17838 Modified Files: MessageTest.java Log Message: Ensure checks are instantiated by instantiating a Checker instance. Without this, the Message objects are never created! Index: MessageTest.java =================================================================== RCS file: /cvsroot/clirr/clirr/core/src/test/net/sf/clirr/core/MessageTest.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- MessageTest.java 11 Jul 2004 10:29:24 -0000 1.1 +++ MessageTest.java 20 Jul 2004 07:52:44 -0000 1.2 @@ -16,13 +16,15 @@ { /** * This test verifies that none of the check classes has used - * a message-id which is already in use elsewhere. It is assumed - * that the other unit tests will already have caused every available - * check class to be loaded into memory, therefore causing all the - * static Message objects to be created. + * a message-id which is already in use elsewhere. + * <p> + * It is assumed that instantiating the Checker class causes every + * check class to be loaded, which in turn causes every Message + * object (which are expected to be static members of checks) to be created. */ public void testUnique() { + Checker checker = CheckerFactory.createChecker(); MessageManager.getInstance().checkUnique(); } @@ -39,8 +41,12 @@ */ public void testComplete() { + Checker checker = CheckerFactory.createChecker(); java.util.Collection messages = MessageManager.getInstance().getMessages(); + // there are at least 10 messages in the system + assertTrue(messages.size() > 10); + // check the english locale MessageTranslator translator = new MessageTranslator(); translator.setLocale(Locale.ENGLISH); |