> -----Original Message----- > From: paulus.benedic...@gmail.com [mailto:paulus.benedic...@gmail.com] On > Behalf Of Paul Benedict > Sent: Thursday, March 19, 2009 5:37 AM > To: Commons Developers List > Subject: Re: [LANG] 3.0 JCIP Annotations > > sebb, > > I must have mis-stated my point. If Commons Lang uses JCIP @Immutable > annotations, and another Commons project uses a theoretical XYZ > @NotMutable annotations, we will have lost the ability to track bugs > across project boundaries. So my point was that we should all agree > that using JCIP -- if you want to use them -- is the canonical > bug-detecting annotations for any Commons project. Let's just avoid > duplication.
I love avoiding duplication. It's too bad we can't do the same for code, even just within [commons] as well as Apache-wide. We use a lot of [commons], Apache libraries and other open source projects. Over and over I see code duplicated under the rubric 'we don't want to depend on foo.jar, so copy the foo code here'. If you use an IDE like Eclipse, just search for classes like Base64 and StringUtils, there are a lot of them out there! Granted they do not all do the exactly same thing. It would be interesting to have a way for a build or Gump to look for code duplication across projects, even duplicated class names could be a hint that one project could reuse another... Gary > > Paul > > On Thu, Mar 19, 2009 at 6:07 AM, sebb <seb...@gmail.com> wrote: > > On 19/03/2009, Paul Benedict <pbened...@apache.org> wrote: > >> I think the use of JCIP annotations should be an Apache Commons-wide > >> decision. It would only be sensible to share the annotations across > >> projects. Otherwise, we could get fragmentation pretty easily. > > > > Fragmentation? > > > > If a project uses concurrency annotations, it should use the same > > library, buy I see no reason why every component should _have_ to use > > them. > > > >> > >> Paul > >> > >> > >> On Wed, Mar 18, 2009 at 9:48 PM, sebb <seb...@gmail.com> wrote: > >> > On 19/03/2009, Stephen Colebourne <scolebou...@btopenworld.com> > wrote: > >> >> sebb wrote: > >> >> > >> >> > > >> >> > > Are you proposing including these pieces of annotation code in > [lang], > >> >> or > >> >> > > just referencing them? If its just referencing them, then it > has no real > >> >> > > effect, and should be fine (aprt from making the compilation a > little > >> >> more > >> >> > > complex) > >> >> > > > >> >> > > > >> >> > > >> >> > I'm not sure what you mean by "including" or "referencing". > >> >> > > >> >> > I am proposing to add > >> >> > > >> >> > import net.jcip.annotations.Immutable > >> >> > and > >> >> > @Immutable > >> >> > > >> >> > to the source files of classes that deserve it. Similarly for the > other > >> >> cases. > >> >> > > >> >> > Much like using @Override, except that the annotations are not > part of the > >> >> JDK. > >> >> > > >> >> > >> >> Thats OK technically (as there is no runtime dependency on > >> >> net.jcip.annotations). However, I suspect it will confuse users, as > very few > >> >> people realise that no dependency is created beyond compilation > time. > >> >> > >> >> So, overall, I'm dubious as to whether the value is sufficient to > >> >> compilcate the compliation and to field the inevitable > confusion/questions > >> >> as to 'why we added a dependency' (when we didn't add one > really...) > >> >> > >> > > >> > Again, I'm not sure I follow. > >> > > >> > I don't see how the addition of a single new dependency complicates > >> > the compilation. > >> > If there is any complication, it is from trying to follow what Maven > >> > is doing ;-). > >> > > >> > Nor do I see why users will be confused, so long as the site shows > >> > that LANG depends on Java 1.5 only. Many of them will just use > Maven > >> > to pick up the new version. If necessary one can always add some > >> > information on the site as to how annotations behave. > >> > > >> > I think it's well worth the exercise of checking all the classes to > >> > see which annotation applies; if necessary the annotations (and > >> > imports) could be added as single-line comments. [But I really don't > >> > want to do that.] > >> > > >> > I suspect that the change to using generics will be a much greater > >> > challenge to users; if they can cope with that, then annotations > >> > should be relatively easy. > >> > > >> > Indeed hopefully users will start adding annotations to their own > code... > >> > > >> >> Stephen > >> >> > >> >> > >> >> ------------------------------------------------------------------- > -- > >> >> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org > >> >> For additional commands, e-mail: dev-h...@commons.apache.org > >> >> > >> >> > >> > > >> > -------------------------------------------------------------------- > - > >> > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org > >> > For additional commands, e-mail: dev-h...@commons.apache.org > >> > > >> > > >> > >> --------------------------------------------------------------------- > >> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org > >> For additional commands, e-mail: dev-h...@commons.apache.org > >> > >> > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org > > For additional commands, e-mail: dev-h...@commons.apache.org > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org > For additional commands, e-mail: dev-h...@commons.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org