On Tue, Nov 22, 2016 at 4:08 PM, Gary Gregory <garydgreg...@gmail.com> wrote:
> On Tue, Nov 22, 2016 at 4:04 PM, Gary Gregory <garydgreg...@gmail.com> > wrote: > >> An interesting question is whether we should provide a copy of the >> annotations scoped as RUNTIME, which was the original way the code was >> published out of the JCIP book. >> >> For our use case within Commons, we want a CLASS or SOURCE level >> dependency. We do not want RUNTIME because we do not want a hard dependency >> on Commons Lang from other Commons components. >> > > http://pastebin.com/RKPGGdJ9 adds the "classic" four > javax.annotation.concurrent annotations to two packages (.clazz and > .runtime) in Commons Lang for CLASS and RUNTIME retentions. > I suppose we would need to add ASL headers to these. Gary > Gary > > >> >> Gary >> >> On Tue, Nov 22, 2016 at 2:23 PM, Gary Gregory <garydgreg...@gmail.com> >> wrote: >> >>> It would if the Google version or ours is signed. It also would be a >>> problem if we used a different retention level from Google's. >>> >>> Maybe using our own in o.a.c.lang3 would be less confusing all around. >>> >>> Gary >>> >>> On Tue, Nov 22, 2016 at 2:15 PM, Matt Sicker <boa...@gmail.com> wrote: >>> >>>> Would packaging them in the JSR package name inside commons lang cause >>>> classpath issues if you include the google copy? >>>> >>>> On 22 November 2016 at 15:53, Gary Gregory <garydgreg...@gmail.com> >>>> wrote: >>>> >>>> > Should we: >>>> > >>>> > - package these (three) annotations per the JSR package name, or, >>>> > - in o.a.c.lang3, or, >>>> > - should we depend on a jar like >>>> > https://search.maven.org/#artifactdetails%7Ccom.google. >>>> > code.findbugs%7Cjsr305%7C3.0.1%7Cjar >>>> > >>>> > ? >>>> > >>>> > Gary >>>> > >>>> > On Tue, Nov 22, 2016 at 1:47 PM, Matt Sicker <boa...@gmail.com> >>>> wrote: >>>> > >>>> > > It's at least pretty standard (being a JSR and all), plus no runtime >>>> > > dependency, I don't see why not! >>>> > > >>>> > > On 22 November 2016 at 15:36, Gary Gregory <garydgreg...@gmail.com> >>>> > wrote: >>>> > > >>>> > > > Maybe we could start with adding these three annotations to >>>> [lang] with >>>> > > > Class retention which does not create a runtime dependency. Then >>>> we can >>>> > > use >>>> > > > them all over Commons. >>>> > > > >>>> > > > WDYT? >>>> > > > >>>> > > > Gary >>>> > > > >>>> > > > On Tue, Nov 22, 2016 at 11:39 AM, Benedikt Ritter < >>>> brit...@apache.org> >>>> > > > wrote: >>>> > > > >>>> > > > > Hello, >>>> > > > > >>>> > > > > Gary Gregory <garydgreg...@gmail.com> schrieb am So., 20. Nov. >>>> 2016 >>>> > um >>>> > > > > 16:50 Uhr: >>>> > > > > >>>> > > > > > Let's recognize that these annotations can give you a false >>>> sense >>>> > of >>>> > > > > > confidence, you still should read at least the docs and >>>> probably >>>> > the >>>> > > > code >>>> > > > > > if you REALLY care about thread safety. >>>> > > > > > >>>> > > > > >>>> > > > > I thought about this again today on my way to work and came up >>>> with >>>> > the >>>> > > > > same conclusion. >>>> > > > > >>>> > > > > >>>> > > > > > >>>> > > > > > There will be mistakes in documentation where the wrong or >>>> > > > contradictory >>>> > > > > > annotation will split in and/or will be out of sync with >>>> Javadocs. >>>> > At >>>> > > > > least >>>> > > > > > that's what is likely to happen _over time_. >>>> > > > > > >>>> > > > > >>>> > > > > agreed. >>>> > > > > >>>> > > > > >>>> > > > > > >>>> > > > > > IOW, its a nice idea but not a panacea for actual thread >>>> safety. >>>> > > > > > >>>> > > > > >>>> > > > > agreed. >>>> > > > > >>>> > > > > >>>> > > > > > >>>> > > > > > The other issue is that if we are serious about this we are >>>> going >>>> > to >>>> > > > end >>>> > > > > up >>>> > > > > > with the same annotations in all Commons packages. We could >>>> reuse >>>> > > > > > javax.annotation.concurrent from JSR 305 as published in >>>> > > > > > >>>> > > > > > https://search.maven.org/#artifactdetails%7Ccom.google. >>>> > > > > code.findbugs%7Cjsr305%7C3.0.1%7Cjar >>>> > > > > > (CLASS level retention). >>>> > > > > > >>>> > > > > >>>> > > > > The logical conclusion from your comments above would imply to >>>> put >>>> > some >>>> > > > > tests or static code analysis in place which can verify whether >>>> the >>>> > > real >>>> > > > > thread safety properties match the documented ones. I'm not >>>> aware of >>>> > > any >>>> > > > > tool which can do that. >>>> > > > > >>>> > > > > So maybe should rather document why we don't document thread >>>> safety >>>> > :-) >>>> > > > > >>>> > > > > Benedikt >>>> > > > > >>>> > > > > >>>> > > > > > >>>> > > > > > Gary >>>> > > > > > >>>> > > > > > On Sat, Nov 19, 2016 at 3:52 AM, Benedikt Ritter < >>>> > brit...@apache.org >>>> > > > >>>> > > > > > wrote: >>>> > > > > > >>>> > > > > > > Hi, >>>> > > > > > > >>>> > > > > > > after my presentation about Apache Commons, there where some >>>> > > comments >>>> > > > > > about >>>> > > > > > > [lang]. One person said, that it is hard to find out >>>> whether our >>>> > > > > classes >>>> > > > > > > are threadsafe or not. He would like to see that better >>>> > documented. >>>> > > > > > > >>>> > > > > > > I know that sebb has done some work in that direction, but >>>> as far >>>> > > as >>>> > > > I >>>> > > > > > know >>>> > > > > > > the information about thread safety is currently only in >>>> Java >>>> > > > comments. >>>> > > > > > > >>>> > > > > > > How can we improve our docs with regards to thread safety? >>>> I see >>>> > > > > several >>>> > > > > > > ways: >>>> > > > > > > - Custom annotations like @Immutable, @ThreadSafe, >>>> @NotThreadSafe >>>> > > > > > > - Custom JavaDoc doclets >>>> > > > > > > - Put the information right into the JavaDoc >>>> > > > > > > >>>> > > > > > > Anything else? >>>> > > > > > > >>>> > > > > > > Benedikt >>>> > > > > > > >>>> > > > > > >>>> > > > > > >>>> > > > > > >>>> > > > > > -- >>>> > > > > > E-Mail: garydgreg...@gmail.com | ggreg...@apache.org >>>> > > > > > Java Persistence with Hibernate, Second Edition >>>> > > > > > < >>>> > > > > > https://www.amazon.com/gp/product/1617290459/ref=as_li_ >>>> > > > > tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1617290459& >>>> > > > > linkCode=as2&tag=garygregory-20&linkId= >>>> > cadb800f39946ec62ea2b1af9fe6a2 >>>> > > b8 >>>> > > > > > > >>>> > > > > > >>>> > > > > > <http://// >>>> > > > > > ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1& >>>> > > a=1617290459 >>>> > > > > >>>> > > > > > JUnit in Action, Second Edition >>>> > > > > > < >>>> > > > > > https://www.amazon.com/gp/product/1935182021/ref=as_li_ >>>> > > > > tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182021& >>>> > > > > linkCode=as2&tag=garygregory-20&linkId= >>>> > 31ecd1f6b6d1eaf8886ac902a24de4 >>>> > > > 18%22 >>>> > > > > > > >>>> > > > > > >>>> > > > > > <http://// >>>> > > > > > ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1& >>>> > > a=1935182021 >>>> > > > > >>>> > > > > > Spring Batch in Action >>>> > > > > > < >>>> > > > > > https://www.amazon.com/gp/product/1935182951/ref=as_li_ >>>> > > > > tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182951& >>>> > > > > linkCode=%7B%7BlinkCode%7D%7D&tag=garygregory-20&linkId=%7B% >>>> > > > > 7Blink_id%7D%7D%22%3ESpring+Batch+in+Action >>>> > > > > > > >>>> > > > > > <http://// >>>> > > > > > ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1& >>>> > > a=1935182951 >>>> > > > > >>>> > > > > > Blog: http://garygregory.wordpress.com >>>> > > > > > Home: http://garygregory.com/ >>>> > > > > > Tweet! http://twitter.com/GaryGregory >>>> > > > > > >>>> > > > > >>>> > > > >>>> > > > >>>> > > > >>>> > > > -- >>>> > > > E-Mail: garydgreg...@gmail.com | ggreg...@apache.org >>>> > > > Java Persistence with Hibernate, Second Edition >>>> > > > <https://www.amazon.com/gp/product/1617290459/ref=as_li_ >>>> > > > tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1617290459& >>>> > > > linkCode=as2&tag=garygregory-20&linkId=cadb800f39946ec62ea2b >>>> 1af9fe6a2 >>>> > b8> >>>> > > > >>>> > > > <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l= >>>> am2&o=1&a= >>>> > > > 1617290459> >>>> > > > JUnit in Action, Second Edition >>>> > > > <https://www.amazon.com/gp/product/1935182021/ref=as_li_ >>>> > > > tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182021& >>>> > > > linkCode=as2&tag=garygregory-20&linkId=31ecd1f6b6d1eaf8886ac >>>> 902a24de4 >>>> > > 18%22 >>>> > > > > >>>> > > > >>>> > > > <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l= >>>> am2&o=1&a= >>>> > > > 1935182021> >>>> > > > Spring Batch in Action >>>> > > > <https://www.amazon.com/gp/product/1935182951/ref=as_li_ >>>> > > > tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182951& >>>> > > > linkCode=%7B%7BlinkCode%7D%7D&tag=garygregory-20&linkId=%7B% >>>> > > > 7Blink_id%7D%7D%22%3ESpring+Batch+in+Action> >>>> > > > <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l= >>>> am2&o=1&a= >>>> > > > 1935182951> >>>> > > > Blog: http://garygregory.wordpress.com >>>> > > > Home: http://garygregory.com/ >>>> > > > Tweet! http://twitter.com/GaryGregory >>>> > > > >>>> > > >>>> > > >>>> > > >>>> > > -- >>>> > > Matt Sicker <boa...@gmail.com> >>>> > > >>>> > >>>> > >>>> > >>>> > -- >>>> > E-Mail: garydgreg...@gmail.com | ggreg...@apache.org >>>> > Java Persistence with Hibernate, Second Edition >>>> > <https://www.amazon.com/gp/product/1617290459/ref=as_li_ >>>> > tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1617290459& >>>> > linkCode=as2&tag=garygregory-20&linkId=cadb800f39946ec62ea2b >>>> 1af9fe6a2b8> >>>> > >>>> > <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l= >>>> am2&o=1&a= >>>> > 1617290459> >>>> > JUnit in Action, Second Edition >>>> > <https://www.amazon.com/gp/product/1935182021/ref=as_li_ >>>> > tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182021& >>>> > linkCode=as2&tag=garygregory-20&linkId=31ecd1f6b6d1eaf8886ac >>>> 902a24de418%22 >>>> > > >>>> > >>>> > <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l= >>>> am2&o=1&a= >>>> > 1935182021> >>>> > Spring Batch in Action >>>> > <https://www.amazon.com/gp/product/1935182951/ref=as_li_ >>>> > tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182951& >>>> > linkCode=%7B%7BlinkCode%7D%7D&tag=garygregory-20&linkId=%7B% >>>> > 7Blink_id%7D%7D%22%3ESpring+Batch+in+Action> >>>> > <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l= >>>> am2&o=1&a= >>>> > 1935182951> >>>> > Blog: http://garygregory.wordpress.com >>>> > Home: http://garygregory.com/ >>>> > Tweet! http://twitter.com/GaryGregory >>>> > >>>> >>>> >>>> >>>> -- >>>> Matt Sicker <boa...@gmail.com> >>>> >>> >>> >>> >>> -- >>> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org >>> Java Persistence with Hibernate, Second Edition >>> <https://www.amazon.com/gp/product/1617290459/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1617290459&linkCode=as2&tag=garygregory-20&linkId=cadb800f39946ec62ea2b1af9fe6a2b8> >>> >>> <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1617290459> >>> JUnit in Action, Second Edition >>> <https://www.amazon.com/gp/product/1935182021/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182021&linkCode=as2&tag=garygregory-20&linkId=31ecd1f6b6d1eaf8886ac902a24de418%22> >>> >>> <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1935182021> >>> Spring Batch in Action >>> <https://www.amazon.com/gp/product/1935182951/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182951&linkCode=%7B%7BlinkCode%7D%7D&tag=garygregory-20&linkId=%7B%7Blink_id%7D%7D%22%3ESpring+Batch+in+Action> >>> <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1935182951> >>> Blog: http://garygregory.wordpress.com >>> Home: http://garygregory.com/ >>> Tweet! http://twitter.com/GaryGregory >>> >> >> >> >> -- >> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org >> Java Persistence with Hibernate, Second Edition >> <https://www.amazon.com/gp/product/1617290459/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1617290459&linkCode=as2&tag=garygregory-20&linkId=cadb800f39946ec62ea2b1af9fe6a2b8> >> >> <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1617290459> >> JUnit in Action, Second Edition >> <https://www.amazon.com/gp/product/1935182021/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182021&linkCode=as2&tag=garygregory-20&linkId=31ecd1f6b6d1eaf8886ac902a24de418%22> >> >> <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1935182021> >> Spring Batch in Action >> <https://www.amazon.com/gp/product/1935182951/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182951&linkCode=%7B%7BlinkCode%7D%7D&tag=garygregory-20&linkId=%7B%7Blink_id%7D%7D%22%3ESpring+Batch+in+Action> >> <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1935182951> >> Blog: http://garygregory.wordpress.com >> Home: http://garygregory.com/ >> Tweet! http://twitter.com/GaryGregory >> > > > > -- > E-Mail: garydgreg...@gmail.com | ggreg...@apache.org > Java Persistence with Hibernate, Second Edition > <https://www.amazon.com/gp/product/1617290459/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1617290459&linkCode=as2&tag=garygregory-20&linkId=cadb800f39946ec62ea2b1af9fe6a2b8> > > <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1617290459> > JUnit in Action, Second Edition > <https://www.amazon.com/gp/product/1935182021/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182021&linkCode=as2&tag=garygregory-20&linkId=31ecd1f6b6d1eaf8886ac902a24de418%22> > > <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1935182021> > Spring Batch in Action > <https://www.amazon.com/gp/product/1935182951/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182951&linkCode=%7B%7BlinkCode%7D%7D&tag=garygregory-20&linkId=%7B%7Blink_id%7D%7D%22%3ESpring+Batch+in+Action> > <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1935182951> > Blog: http://garygregory.wordpress.com > Home: http://garygregory.com/ > Tweet! http://twitter.com/GaryGregory > -- E-Mail: garydgreg...@gmail.com | ggreg...@apache.org Java Persistence with Hibernate, Second Edition <https://www.amazon.com/gp/product/1617290459/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1617290459&linkCode=as2&tag=garygregory-20&linkId=cadb800f39946ec62ea2b1af9fe6a2b8> <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1617290459> JUnit in Action, Second Edition <https://www.amazon.com/gp/product/1935182021/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182021&linkCode=as2&tag=garygregory-20&linkId=31ecd1f6b6d1eaf8886ac902a24de418%22> <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1935182021> Spring Batch in Action <https://www.amazon.com/gp/product/1935182951/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182951&linkCode=%7B%7BlinkCode%7D%7D&tag=garygregory-20&linkId=%7B%7Blink_id%7D%7D%22%3ESpring+Batch+in+Action> <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1935182951> Blog: http://garygregory.wordpress.com Home: http://garygregory.com/ Tweet! http://twitter.com/GaryGregory