Are you suggesting [lang] becomes a multi-module project?

Gary

On Nov 27, 2016 5:01 PM, "sebb" <seb...@gmail.com> wrote:

> On 28 November 2016 at 00:11, Gary Gregory <garydgreg...@gmail.com> wrote:
> > On Sun, Nov 27, 2016 at 4:09 PM, sebb <seb...@gmail.com> wrote:
> >
> >> On 27 November 2016 at 23:51, Gary Gregory <garydgreg...@gmail.com>
> wrote:
> >> > On Sun, Nov 27, 2016 at 3:41 PM, sebb <seb...@gmail.com> wrote:
> >> >
> >> >> On 27 November 2016 at 22:31, Gary Gregory <garydgreg...@gmail.com>
> >> wrote:
> >> >> > On Sun, Nov 27, 2016 at 2:14 PM, sebb <seb...@gmail.com> wrote:
> >> >> >
> >> >> >> On 27 November 2016 at 22:03, Gary Gregory <
> garydgreg...@gmail.com>
> >> >> wrote:
> >> >> >> > These annotations are the SAME as have been published all over
> the
> >> >> place,
> >> >> >> > so I do not think we need a PR for review. Reviewing the code in
> >> the
> >> >> repo
> >> >> >> > should be enough, but I'm not sure _what_ there is to review
> >> really.
> >> >> I've
> >> >> >> > already posted a link to the sources (a pastebin link). I'll
> >> create a
> >> >> >> Jira
> >> >> >> > of course.
> >> >> >>
> >> >> >> There is one aspect that needs review: does the annotation belong
> in
> >> >> LANG?
> >> >> >> If we want to use the annotation in other components, do they
> have to
> >> >> >> depend on LANG?
> >> >> >>
> >> >> >
> >> >> > No see below and previous messages.
> >> >> >
> >> >> >
> >> >> >> If not, do they all have their own copies?
> >> >> >>
> >> >> >
> >> >> > No.
> >> >> >
> >> >> >
> >> >> >>
> >> >> >> And what happens when LANG needs a non-BC release?
> >> >> >>
> >> >> >
> >> >> > What is the issue I am missing?
> >> >> >
> >> >>
> >> >> The package name for the annotation might need to change
> >> >> That would be a downstream nuisance.
> >> >>
> >> >
> >> > Hi All,
> >> >
> >> > How is that different than changing the package name for any of our
> other
> >> > lang types?
> >>
> >> It's not.
> >>
> >> > If you want move a package, you have to break BC and we have clear
> >> > guidelines for that task.
> >>
> >> But why should I have to change package imports for annotations just
> >> because they happen to be in LANG?
> >>
> >> Note that this could get confusing.
> >>
> >> Say XYZ component starts out only needing lang for the annotations.
> >> So they include LANG 3.x and code the annotations.
> >>
> >> Later they find they want LANG 4.x for runtime.
> >> They would then need to drop the LANG 3.x dependency, fix up all the
> >> annotation imports etc.
> >> Unnecessary work if the annotations were in a separate component.
> >>
> >> Also, any tool that wants to check the annotations will have to look
> >> for them in lots of packages.
> >>
> >> Whilst it can no doubt be made to work, it's going to cause problems
> later.
> >>
> >
> > To be on the playful side, this is what my mother calls "borrowing
> trouble"
> > ;-)
> >
> > We can future-trip ourselves in all sorts of troubles. Our imaginations
> > know no bounds!  :-)
>
> This is not an imaginary scenario.
>
> We know that LANG will have a non-BC release at some point.
> The plan is to allow non-LANG components to share the LANG annotations.
> We know that components which originally don't need LANG may end up
> needing LANG at run-time.
> Therefore the problem will occur.
>
> In this case, "look before you leap" is appropriate.
>
> > Gary
> >
> >
> >>
> >> > Since already have a package called org.apache.commons.lang3.
> concurrent,
> >> I
> >> > propose we place these annottaions in
> >> > org.apache.commons.lang3.concurrent.annotation.
> >> >
> >> >
> >> >> >>
> >> >> >> My expectation for such annotations is that they would be
> >> >> >> self-contained (or built-in to the languange, not LANG).
> >> >> >>
> >> >> >
> >> >> > It is _because_ they are NOT built-in the language or JRE that we
> are
> >> >> > proposing they belong in [lang].
> >> >> >
> >> >> > Since we are providing the annotation with CLASS retention only
> >> >> > (initially), there is no hard dependency on [lang] at runtime.
> >> >> >
> >> >> > Is there some subtlety we are missing?
> >> >>
> >> >> Yes, the compile-time dependency.
> >> >>
> >> >
> >> > No surprise, right? You can't use an annotation without compiling the
> >> > source file.
> >> >
> >> >
> >> >> AFAIK it's not possible to have a Maven compile-only dependency;
> >> >> compile-time implies run-time.
> >> >>
> >> >
> >> > That's a tooling issue of course which should not invalidate the
> >> worthiness
> >> > of this feature.
> >> >
> >> > If I am a downstream user of Commons Lang's new annotations, I would
> >> need a
> >> > Maven scope that says "I need [lang] as a compile time only
> dependency" I
> >> > do not see such a scope on
> >> > https://maven.apache.org/guides/introduction/
> introduction-to-dependency-
> >> mechanism.html#Dependency_Scope
> >> >
> >> > Time for a Jira!
> >> >
> >> > I wonder what Gradle offers users in this dept.?
> >> >
> >> > Gary
> >> >
> >> >
> >> >>
> >> >> > Gary
> >> >> >
> >> >> >
> >> >> >> > Gary
> >> >> >> >
> >> >> >> > On Sun, Nov 27, 2016 at 1:20 PM, Benedikt Ritter <
> >> brit...@apache.org>
> >> >> >> wrote:
> >> >> >> >
> >> >> >> >> Hi,
> >> >> >> >>
> >> >> >> >> Gary Gregory <garydgreg...@gmail.com> schrieb am So., 27. Nov.
> >> 2016
> >> >> um
> >> >> >> >> 21:01 Uhr:
> >> >> >> >>
> >> >> >> >> > So let's start with the CLASS retention annotations first.
> I'll
> >> >> commit
> >> >> >> >> > later today.
> >> >> >> >> >
> >> >> >> >>
> >> >> >> >> Maybe create a GitHub PR so people can have a look before it
> goes
> >> to
> >> >> >> >> master?
> >> >> >> >>
> >> >> >> >> Benedikt
> >> >> >> >>
> >> >> >> >>
> >> >> >> >> >
> >> >> >> >> > Gary
> >> >> >> >> >
> >> >> >> >> > On Nov 27, 2016 9:50 AM, "Matt Sicker" <boa...@gmail.com>
> >> wrote:
> >> >> >> >> >
> >> >> >> >> > > I feel like documenting thread safety in such a low level,
> >> widely
> >> >> >> used
> >> >> >> >> > > library like [lang] is a great idea. Whether it uses
> >> annotations,
> >> >> >> >> > javadocs,
> >> >> >> >> > > or some sort of informal javadoc comments isn't too big a
> >> deal to
> >> >> >> me,
> >> >> >> >> but
> >> >> >> >> > > providing some guarantees of thread safety or lack thereof
> >> would
> >> >> be
> >> >> >> >> > > invaluable information.
> >> >> >> >> > >
> >> >> >> >> > > On 27 November 2016 at 07:11, Benedikt Ritter <
> >> >> brit...@apache.org>
> >> >> >> >> > wrote:
> >> >> >> >> > >
> >> >> >> >> > > > I thought we decided to abstain from documenting thread
> >> safety
> >> >> >> since
> >> >> >> >> it
> >> >> >> >> > > > would get outdated quickly anyway.
> >> >> >> >> > > >
> >> >> >> >> > > > Gary Gregory <garydgreg...@gmail.com> schrieb am So.,
> 27.
> >> Nov.
> >> >> >> 2016
> >> >> >> >> um
> >> >> >> >> > > > 09:11 Uhr:
> >> >> >> >> > > >
> >> >> >> >> > > > > But if we then want a runtime version we had an odd
> >> packaging
> >> >> >> with
> >> >> >> >> > > CLASS
> >> >> >> >> > > > > retention in .concurrent. and RUNTIME in
> >> .concurrent.runtime.
> >> >> >> >> > > > >
> >> >> >> >> > > > > I might be in YAGNI territory here...
> >> >> >> >> > > > >
> >> >> >> >> > > > > Gary
> >> >> >> >> > > > >
> >> >> >> >> > > > > On Sat, Nov 26, 2016 at 10:07 PM, Matt Sicker <
> >> >> boa...@gmail.com
> >> >> >> >
> >> >> >> >> > > wrote:
> >> >> >> >> > > > >
> >> >> >> >> > > > > > I think adding the additional clazz/runtime package
> >> would
> >> >> be a
> >> >> >> >> > little
> >> >> >> >> > > > > > overkill if you only include one packaging option for
> >> now.
> >> >> >> >> > > > > >
> >> >> >> >> > > > > > On 27 November 2016 at 00:04, Gary Gregory <
> >> >> >> >> garydgreg...@gmail.com
> >> >> >> >> > >
> >> >> >> >> > > > > wrote:
> >> >> >> >> > > > > >
> >> >> >> >> > > > > > > On Nov 26, 2016 8:40 PM, "Matt Sicker" <
> >> boa...@gmail.com
> >> >> >
> >> >> >> >> wrote:
> >> >> >> >> > > > > > > >
> >> >> >> >> > > > > > > > I can think of a couple use cases for runtime
> >> retention
> >> >> >> for
> >> >> >> >> > > thread
> >> >> >> >> > > > > > safety
> >> >> >> >> > > > > > > > annotations, but they're not specific to commons
> >> lang.
> >> >> >> >> > > > > > > >
> >> >> >> >> > > > > > > > 1. A framework could choose what type of data
> >> >> structure or
> >> >> >> >> > > > algorithm
> >> >> >> >> > > > > to
> >> >> >> >> > > > > > > use
> >> >> >> >> > > > > > > > at runtime based on the presence of which thread
> >> safety
> >> >> >> >> > > annotation
> >> >> >> >> > > > is
> >> >> >> >> > > > > > on.
> >> >> >> >> > > > > > > > Same for mutability.
> >> >> >> >> > > > > > > > 2. A testing framework could use these
> annotations
> >> to
> >> >> try
> >> >> >> and
> >> >> >> >> > > > > automate
> >> >> >> >> > > > > > > some
> >> >> >> >> > > > > > > > sort of thread safety tests, though that sounds
> >> like a
> >> >> >> hard
> >> >> >> >> > > problem
> >> >> >> >> > > > > to
> >> >> >> >> > > > > > > > actually implement.
> >> >> >> >> > > > > > > >
> >> >> >> >> > > > > > > > However, it'd be easier to just start with class
> >> >> retention
> >> >> >> >> (or
> >> >> >> >> > > > source
> >> >> >> >> > > > > > > > retention) just for documentation purposes.
> Higher
> >> >> >> retention
> >> >> >> >> > > levels
> >> >> >> >> > > > > > could
> >> >> >> >> > > > > > > > be added later if an important use case came up.
> >> >> >> >> > > > > > >
> >> >> >> >> > > > > > > But which packaging option?
> >> >> >> >> > > > > > >
> >> >> >> >> > > > > > > Gary
> >> >> >> >> > > > > > > >
> >> >> >> >> > > > > > > > On 26 November 2016 at 19:56, Gary Gregory <
> >> >> >> >> > > garydgreg...@gmail.com
> >> >> >> >> > > > >
> >> >> >> >> > > > > > > wrote:
> >> >> >> >> > > > > > > >
> >> >> >> >> > > > > > > > > On Sat, Nov 26, 2016 at 3:54 PM, sebb <
> >> >> seb...@gmail.com
> >> >> >> >
> >> >> >> >> > > wrote:
> >> >> >> >> > > > > > > > >
> >> >> >> >> > > > > > > > > > On 26 November 2016 at 19:25, Gary Gregory <
> >> >> >> >> > > > > garydgreg...@gmail.com
> >> >> >> >> > > > > > >
> >> >> >> >> > > > > > > > > wrote:
> >> >> >> >> > > > > > > > > > > On a [crypto] thread, I mentioned
> >> >> >> >> > > > http://pastebin.com/RKPGGdJ9
> >> >> >> >> > > > > > to
> >> >> >> >> > > > > > > add
> >> >> >> >> > > > > > > > > > the
> >> >> >> >> > > > > > > > > > > "classic" four javax.annotation.concurrent
> >> >> >> annotations
> >> >> >> >> to
> >> >> >> >> > > two
> >> >> >> >> > > > > > > packages
> >> >> >> >> > > > > > > > > > > (.clazz and .runtime) in Commons Lang for
> >> CLASS
> >> >> and
> >> >> >> >> > RUNTIME
> >> >> >> >> > > > > > > retentions.
> >> >> >> >> > > > > > > > > > >
> >> >> >> >> > > > > > > > > > > You'd use the CLASS version to avoid a hard
> >> >> >> dependency
> >> >> >> >> on
> >> >> >> >> > > > > [lang].
> >> >> >> >> > > > > > > > > RUNTIME
> >> >> >> >> > > > > > > > > > > to keep them around.
> >> >> >> >> > > > > > > > > > >
> >> >> >> >> > > > > > > > > > > We'd use the CLASS versions in all of
> Commons
> >> for
> >> >> >> >> > > documenting
> >> >> >> >> > > > > > > thread
> >> >> >> >> > > > > > > > > > safety.
> >> >> >> >> > > > > > > > > > >
> >> >> >> >> > > > > > > > > > > Thoughts?
> >> >> >> >> > > > > > > > > >
> >> >> >> >> > > > > > > > > > Definitely Class retention, not Runtime.
> >> >> >> >> > > > > > > > > > You don't want to have to include the
> annotation
> >> >> jar
> >> >> >> on
> >> >> >> >> the
> >> >> >> >> > > > > runtime
> >> >> >> >> > > > > > > > > > classpath.
> >> >> >> >> > > > > > > > > >
> >> >> >> >> > > > > > > > >
> >> >> >> >> > > > > > > > > Hi Sebb,
> >> >> >> >> > > > > > > > >
> >> >> >> >> > > > > > > > > Right now I have both of these packages:
> >> >> >> >> > > > > > > > >
> >> >> >> >> > > > > > > > > - org.apache.commons.lang3.
> >> >> annotation.concurrent.clazz
> >> >> >> >> > > > > > > > > - org.apache.commons.lang3.
> >> >> >> annotation.concurrent.runtime
> >> >> >> >> > > > > > > > >
> >> >> >> >> > > > > > > > > Each with a copy of:
> >> >> >> >> > > > > > > > >
> >> >> >> >> > > > > > > > > GuardedBy
> >> >> >> >> > > > > > > > > Immutable
> >> >> >> >> > > > > > > > > NotThreadSafe
> >> >> >> >> > > > > > > > > ThreadSafe
> >> >> >> >> > > > > > > > >
> >> >> >> >> > > > > > > > > Should we include what I have as is?
> >> >> >> >> > > > > > > > >
> >> >> >> >> > > > > > > > > If we were to only provide the annotation at
> the
> >> >> CLASS
> >> >> >> >> > > retention
> >> >> >> >> > > > > > level,
> >> >> >> >> > > > > > > > > should we still package them in
> >> >> >> >> > ...annotation.concurrent.clazz
> >> >> >> >> > > in
> >> >> >> >> > > > > > case
> >> >> >> >> > > > > > > we
> >> >> >> >> > > > > > > > > want to provide annotation.concurrent.runtime
> >> later?
> >> >> >> >> > > > > > > > >
> >> >> >> >> > > > > > > > > If we know for certain we never want to provide
> >> >> RUNTIME
> >> >> >> >> > > > retention,
> >> >> >> >> > > > > we
> >> >> >> >> > > > > > > can
> >> >> >> >> > > > > > > > > put them all in annotation.concurrent now.
> >> >> >> >> > > > > > > > >
> >> >> >> >> > > > > > > > > Thoughts?
> >> >> >> >> > > > > > > > >
> >> >> >> >> > > > > > > > > Gary
> >> >> >> >> > > > > > > > >
> >> >> >> >> > > > > > > > >
> >> >> >> >> > > > > > > > >
> >> >> >> >> > > > > > > > > > [I don't know why the annotations were ever
> >> >> considered
> >> >> >> >> > > suitable
> >> >> >> >> > > > > for
> >> >> >> >> > > > > > > > > > runtime]
> >> >> >> >> > > > > > > > > >
> >> >> >> >> > > > > > > > > > > Gary
> >> >> >> >> > > > > > > > > > >
> >> >> >> >> > > > > > > > > > > --
> >> >> >> >> > > > > > > > > > > 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
> >> >> >> >> > > > > > > > > >
> >> >> >> >> > > > > > > > > >
> >> >> >> >> > ------------------------------------------------------------
> >> >> >> >> > > > > > > ---------
> >> >> >> >> > > > > > > > > > To unsubscribe, e-mail:
> dev-unsubscribe@commons.
> >> >> >> >> apache.org
> >> >> >> >> > > > > > > > > > For additional commands, e-mail:
> >> >> >> >> > dev-h...@commons.apache.org
> >> >> >> >> > > > > > > > > >
> >> >> >> >> > > > > > > > > >
> >> >> >> >> > > > > > > > >
> >> >> >> >> > > > > > > > >
> >> >> >> >> > > > > > > > > --
> >> >> >> >> > > > > > > > > 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
> >> >> >> >> > > > > > > > >
> >> >> >> >> > > > > > > >
> >> >> >> >> > > > > > > >
> >> >> >> >> > > > > > > >
> >> >> >> >> > > > > > > > --
> >> >> >> >> > > > > > > > Matt Sicker <boa...@gmail.com>
> >> >> >> >> > > > > > >
> >> >> >> >> > > > > >
> >> >> >> >> > > > > >
> >> >> >> >> > > > > >
> >> >> >> >> > > > > > --
> >> >> >> >> > > > > > 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=
> >> >> >> >> 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
> >> >> >> >> > > > >
> >> >> >> >> > > >
> >> >> >> >> > >
> >> >> >> >> > >
> >> >> >> >> > >
> >> >> >> >> > > --
> >> >> >> >> > > 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=
> >> 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
> >> >> >>
> >> >> >> ------------------------------------------------------------
> >> ---------
> >> >> >> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> >> >> >> For additional commands, e-mail: dev-h...@commons.apache.org
> >> >> >>
> >> >> >>
> >> >> >
> >> >> >
> >> >> > --
> >> >> > 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
> >> >>
> >> >> ------------------------------------------------------------
> ---------
> >> >> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> >> >> For additional commands, e-mail: dev-h...@commons.apache.org
> >> >>
> >> >>
> >> >
> >> >
> >> > --
> >> > 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
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> >> For additional commands, e-mail: dev-h...@commons.apache.org
> >>
> >>
> >
> >
> > --
> > 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
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
>
>

Reply via email to