You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hc.apache.org by Gary Gregory <ga...@gmail.com> on 2017/03/29 20:50:09 UTC

Re: SocketConfig (v5)

I really want to do this TimeValue thing but when I look at Java 8, I see
the Duration class.

So why not move HC to Java 8? Why are we hung up on Java 7?

Gary

On Thu, Feb 16, 2017 at 6:47 AM, sebb <se...@gmail.com> wrote:

> On 15 February 2017 at 19:10, Gary Gregory <ga...@gmail.com> wrote:
> > On Wed, Feb 15, 2017 at 7:49 AM, sebb <se...@gmail.com> wrote:
> >
> >> On 15 February 2017 at 05:20, Gary Gregory <ga...@gmail.com>
> wrote:
> >> > I like the idea of having at least setTimeout(long, TimeUnit), and as
> a
> >> > convenience setTimeoutMillis. This is Millis because milliseconds is
> the
> >> > underlying scale used by the socket API.
> >> >
> >> > The question is whether we should add a TimeValue class
> >> > setTimeout(TimeValue). The next step is to have a TimeValue subclass
> >> called
> >> > Timeout to make the API even more strongly typed.
> >>
> >> Not sure I see why a timeout period is different from any other time
> >> period.
> >> So I don't see how it helps to use a different class for the setTimeout
> >> method.
> >>
> >> Would there also be a SleepTime sub-class for a pause function?
> >>
> >
> > I do not see use cases at this time for more TimeValue subclasses. It
> > really depends if there is a chance of confusion from the call site's
> POV.
> > For, now, I think a TimeValue class will be enough.
>
> I agree.
>
> However I took your mail to mean you wanted to create a subclass of
> TimeValue called TimeOut:
>
> <quote>
> The next step is to have a TimeValue subclass called
> Timeout to make the API even more strongly typed.
>
> We could end up with:
>
> setTimeout(long, TimeUnit)
> setTimeoutMillis(long)
> setTimeout(Timeout)
> </quote>
>
> Do you still think a TimeOut subclass is needed?
>
>
> > Gary
> >
> >
> >>
> >> > We could end up with:
> >> >
> >> > setTimeout(long, TimeUnit)
> >> > setTimeoutMillis(long)
> >> > setTimeout(Timeout)
> >> >
> >> > ?
> >> > Gary
> >> >
> >> > On Fri, Feb 10, 2017 at 4:15 PM, sebb <se...@gmail.com> wrote:
> >> >
> >> >> Does it make sense to use timeout units other than seconds?
> >> >>
> >> >> If not, just use
> >> >>
> >> >> [get|set]TimeoutSeconds
> >> >>
> >> >> Or if there is a need for milliseconds, then either add
> >> >>
> >> >> [get|set]TimeoutMilliSeconds
> >> >>
> >> >> or only provide that.
> >> >>
> >> >>
> >> >>
> >> >> On 10 February 2017 at 19:51, Gary Gregory <ga...@gmail.com>
> >> wrote:
> >> >> > On Fri, Feb 10, 2017 at 2:10 AM, Oleg Kalnichevski <
> olegk@apache.org>
> >> >> wrote:
> >> >> >
> >> >> >> On Thu, 2017-02-09 at 14:18 -0800, Gary Gregory wrote:
> >> >> >> > On Thu, Feb 9, 2017 at 1:56 PM, Bhowmik, Bindul
> >> <bindulbhowmik@gmail.
> >> >> >> > com>
> >> >> >> >
> >> >> >>
> >> >> >> ...
> >> >> >>
> >> >> >> > > How about getSoTimeout(TimeUnit) ? Maybe in addition to
> >> >> >> > > getSoTimeoutMillis().
> >> >> >> > >
> >> >> >> >
> >> >> >> > I'm fine with that. My concern is mostly on the setter side.
> >> >> >> >
> >> >> >> > Gary
> >> >> >> >
> >> >> >>
> >> >> >> I find getter / setter inconsistency equally not-nice. What about
> >> using
> >> >> >> a tuple class for all time value settings
> >> >> >>
> >> >> >> class TimeValue {
> >> >> >>   long value;
> >> >> >>   TimeUnit unit;
> >> >> >>
> >> >> >> }
> >> >> >>
> >> >> >> Or some such?
> >> >> >>
> >> >> >
> >> >> > Maybe... this becomes wordy though:
> >> >> >
> >> >> > config.setTimeout(TimeValue.of(1, TimeUnit.SECONDS));
> >> >> >
> >> >> > instead of
> >> >> >
> >> >> > config.setTimeout(1, TimeUnit.SECONDS);
> >> >> >
> >> >> > which is what I see in the JRE here and there.
> >> >> >
> >> >> > The nice thing about TimeValue is that the object that uses it does
> >> not
> >> >> > need to worry about scale in its implementation.
> >> >> >
> >> >> > If I am coding a Socket class, I have to remember that soTimeout
> is in
> >> >> > milliseconds. If I write the ivar as "soTimeoutMillis" I am
> >> documenting
> >> >> the
> >> >> > scale but I am not enforcing it.
> >> >> >
> >> >> > So I can see that TimeValue, DistanceValue and so one would make
> for
> >> >> safer
> >> >> > modeling. Less risk of crashing that Mars craft because one team
> was
> >> >> > thinking in metric units and the other in imperial units.
> >> >> >
> >> >> > So from an implementer's POV I like TimeValue. But from a user's
> POV
> >> >> should
> >> >> > I have the convenience of setTimeout(long, TimeUnit) AND
> >> >> > setTimeout(TimeValue).
> >> >> >
> >> >> > Gary
> >> >> >
> >> >> >
> >> >> >> Oleg
> >> >> >>
> >> >> >>
> >> >> >>
> >> >> >> > >
> >> >> >> > > Bindul
> >> >> >> > >
> >> >> >> > > >
> >> >> >> > > > Gary
> >> >> >> > > >
> >> >> >> > > >
> >> >> >> > > > > Oleg
> >> >> >> > > > >
> >> >> >> > > > > ------------------------------
> ------------------------------
> >> -
> >> >> >> > > > > --------
> >> >> >> > > > > To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
> >> >> >> > > > > For additional commands, e-mail: dev-help@hc.apache.org
> >> >> >> > > > >
> >> >> >> > > > >
> >> >> >> > > >
> >> >> >> > > >
> >> >> >> > > > --
> >> >> >> > > > E-Mail: garydgregory@gmail.com | ggregory@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-unsubscribe@hc.apache.org
> >> >> >> > > For additional commands, e-mail: dev-help@hc.apache.org
> >> >> >> > >
> >> >> >> > >
> >> >> >> >
> >> >> >> >
> >> >> >>
> >> >> >> ------------------------------------------------------------
> >> ---------
> >> >> >> To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
> >> >> >> For additional commands, e-mail: dev-help@hc.apache.org
> >> >> >>
> >> >> >>
> >> >> >
> >> >> >
> >> >> > --
> >> >> > E-Mail: garydgregory@gmail.com | ggregory@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@hc.apache.org
> >> >> For additional commands, e-mail: dev-help@hc.apache.org
> >> >>
> >> >>
> >> >
> >> >
> >> > --
> >> > E-Mail: garydgregory@gmail.com | ggregory@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@hc.apache.org
> >> For additional commands, e-mail: dev-help@hc.apache.org
> >>
> >>
> >
> >
> > --
> > E-Mail: garydgregory@gmail.com | ggregory@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-unsubscribe@hc.apache.org
> For additional commands, e-mail: dev-help@hc.apache.org
>
>


-- 
E-Mail: garydgregory@gmail.com | ggregory@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

Upgrade to Java 8; Re: SocketConfig (v5)

Posted by Oleg Kalnichevski <ol...@apache.org>.
On Thu, 2017-03-30 at 03:26 +0100, sebb wrote:
> On 30 March 2017 at 02:27, Gary Gregory <ga...@gmail.com>
> wrote:
> > On Mar 29, 2017 5:31 PM, "sebb" <se...@gmail.com> wrote:
> > 
> > On 29 March 2017 at 21:50, Gary Gregory <ga...@gmail.com>
> > wrote:
> > > I really want to do this TimeValue thing but when I look at Java
> > > 8, I see
> > > the Duration class.
> > > 
> > > So why not move HC to Java 8? Why are we hung up on Java 7?
> > 
> > We keep having this discussion.
> > Just because the Java 8 suits developers does not mean it suits
> > users.
> > 
> > There are lots of users who cannot upgrade easily (or at all) so we
> > should not exclude them just because it is a bit easier for some
> > devs.
> > 
> > 
> > It feels to me like we are way too conservative here. Hibernate,
> > Teiid,
> > Jetty are on Java 8 already. How long is long enough?
> 
> Those are generally further up the dependency chain.
> 
> HC (and most of Commons) can be buried deep in systems where
> upgrading
> Java is not an option.
> 

If my memory serves me well, not too long ago Gradle folks kind of
complained about our being too aggressive with upgrade to Java 6 ;)

I would like to suggest that we revisit the option of upgrading to Java
8 once we move past ALPHA into BETA and have all core functionality in
place. By the time HC 5.0 reaches GA Java 8 might be already
commonplace.

Oleg

PS: I personally see migration to Git by far more important, though I
would love to be able to use Java 8 language features.

> > Gary
> > 
> > 
> > > Gary
> > > 
> > > On Thu, Feb 16, 2017 at 6:47 AM, sebb <se...@gmail.com> wrote:
> > > 
> > > > On 15 February 2017 at 19:10, Gary Gregory <garydgregory@gmail.
> > > > com>
> > 
> > wrote:
> > > > > On Wed, Feb 15, 2017 at 7:49 AM, sebb <se...@gmail.com>
> > > > > wrote:
> > > > > 
> > > > > > On 15 February 2017 at 05:20, Gary Gregory <garydgregory@gm
> > > > > > ail.com>
> > > > 
> > > > wrote:
> > > > > > > I like the idea of having at least setTimeout(long,
> > > > > > > TimeUnit), and
> > 
> > as
> > > > a
> > > > > > > convenience setTimeoutMillis. This is Millis because
> > > > > > > milliseconds is
> > > > 
> > > > the
> > > > > > > underlying scale used by the socket API.
> > > > > > > 
> > > > > > > The question is whether we should add a TimeValue class
> > > > > > > setTimeout(TimeValue). The next step is to have a
> > > > > > > TimeValue subclass
> > > > > > 
> > > > > > called
> > > > > > > Timeout to make the API even more strongly typed.
> > > > > > 
> > > > > > Not sure I see why a timeout period is different from any
> > > > > > other time
> > > > > > period.
> > > > > > So I don't see how it helps to use a different class for
> > > > > > the
> > 
> > setTimeout
> > > > > > method.
> > > > > > 
> > > > > > Would there also be a SleepTime sub-class for a pause
> > > > > > function?
> > > > > > 
> > > > > 
> > > > > I do not see use cases at this time for more TimeValue
> > > > > subclasses. It
> > > > > really depends if there is a chance of confusion from the
> > > > > call site's
> > > > 
> > > > POV.
> > > > > For, now, I think a TimeValue class will be enough.
> > > > 
> > > > I agree.
> > > > 
> > > > However I took your mail to mean you wanted to create a
> > > > subclass of
> > > > TimeValue called TimeOut:
> > > > 
> > > > <quote>
> > > > The next step is to have a TimeValue subclass called
> > > > Timeout to make the API even more strongly typed.
> > > > 
> > > > We could end up with:
> > > > 
> > > > setTimeout(long, TimeUnit)
> > > > setTimeoutMillis(long)
> > > > setTimeout(Timeout)
> > > > </quote>
> > > > 
> > > > Do you still think a TimeOut subclass is needed?
> > > > 
> > > > 
> > > > > Gary
> > > > > 
> > > > > 
> > > > > > 
> > > > > > > We could end up with:
> > > > > > > 
> > > > > > > setTimeout(long, TimeUnit)
> > > > > > > setTimeoutMillis(long)
> > > > > > > setTimeout(Timeout)
> > > > > > > 
> > > > > > > ?
> > > > > > > Gary
> > > > > > > 
> > > > > > > On Fri, Feb 10, 2017 at 4:15 PM, sebb <se...@gmail.com>
> > > > > > > wrote:
> > > > > > > 
> > > > > > > > Does it make sense to use timeout units other than
> > > > > > > > seconds?
> > > > > > > > 
> > > > > > > > If not, just use
> > > > > > > > 
> > > > > > > > [get|set]TimeoutSeconds
> > > > > > > > 
> > > > > > > > Or if there is a need for milliseconds, then either add
> > > > > > > > 
> > > > > > > > [get|set]TimeoutMilliSeconds
> > > > > > > > 
> > > > > > > > or only provide that.
> > > > > > > > 
> > > > > > > > 
> > > > > > > > 
> > > > > > > > On 10 February 2017 at 19:51, Gary Gregory <garydgregor
> > > > > > > > y@gmail.com>
> > > > > > 
> > > > > > wrote:
> > > > > > > > > On Fri, Feb 10, 2017 at 2:10 AM, Oleg Kalnichevski <
> > > > 
> > > > olegk@apache.org>
> > > > > > > > wrote:
> > > > > > > > > 
> > > > > > > > > > On Thu, 2017-02-09 at 14:18 -0800, Gary Gregory
> > > > > > > > > > wrote:
> > > > > > > > > > > On Thu, Feb 9, 2017 at 1:56 PM, Bhowmik, Bindul
> > > > > > 
> > > > > > <bindulbhowmik@gmail.
> > > > > > > > > > > com>
> > > > > > > > > > > 
> > > > > > > > > > 
> > > > > > > > > > ...
> > > > > > > > > > 
> > > > > > > > > > > > How about getSoTimeout(TimeUnit) ? Maybe in
> > > > > > > > > > > > addition to
> > > > > > > > > > > > getSoTimeoutMillis().
> > > > > > > > > > > > 
> > > > > > > > > > > 
> > > > > > > > > > > I'm fine with that. My concern is mostly on the
> > > > > > > > > > > setter side.
> > > > > > > > > > > 
> > > > > > > > > > > Gary
> > > > > > > > > > > 
> > > > > > > > > > 
> > > > > > > > > > I find getter / setter inconsistency equally not-
> > > > > > > > > > nice. What
> > 
> > about
> > > > > > using
> > > > > > > > > > a tuple class for all time value settings
> > > > > > > > > > 
> > > > > > > > > > class TimeValue {
> > > > > > > > > > � long value;
> > > > > > > > > > � TimeUnit unit;
> > > > > > > > > > 
> > > > > > > > > > }
> > > > > > > > > > 
> > > > > > > > > > Or some such?
> > > > > > > > > > 
> > > > > > > > > 
> > > > > > > > > Maybe... this becomes wordy though:
> > > > > > > > > 
> > > > > > > > > config.setTimeout(TimeValue.of(1, TimeUnit.SECONDS));
> > > > > > > > > 
> > > > > > > > > instead of
> > > > > > > > > 
> > > > > > > > > config.setTimeout(1, TimeUnit.SECONDS);
> > > > > > > > > 
> > > > > > > > > which is what I see in the JRE here and there.
> > > > > > > > > 
> > > > > > > > > The nice thing about TimeValue is that the object
> > > > > > > > > that uses it
> > 
> > does
> > > > > > not
> > > > > > > > > need to worry about scale in its implementation.
> > > > > > > > > 
> > > > > > > > > If I am coding a Socket class, I have to remember
> > > > > > > > > that soTimeout
> > > > 
> > > > is in
> > > > > > > > > milliseconds. If I write the ivar as
> > > > > > > > > "soTimeoutMillis" I am
> > > > > > 
> > > > > > documenting
> > > > > > > > the
> > > > > > > > > scale but I am not enforcing it.
> > > > > > > > > 
> > > > > > > > > So I can see that TimeValue, DistanceValue and so one
> > > > > > > > > would make
> > > > 
> > > > for
> > > > > > > > safer
> > > > > > > > > modeling. Less risk of crashing that Mars craft
> > > > > > > > > because one team
> > > > 
> > > > was
> > > > > > > > > thinking in metric units and the other in imperial
> > > > > > > > > units.
> > > > > > > > > 
> > > > > > > > > So from an implementer's POV I like TimeValue. But
> > > > > > > > > from a user's
> > > > 
> > > > POV
> > > > > > > > should
> > > > > > > > > I have the convenience of setTimeout(long, TimeUnit)
> > > > > > > > > AND
> > > > > > > > > setTimeout(TimeValue).
> > > > > > > > > 
> > > > > > > > > Gary
> > > > > > > > > 
> > > > > > > > > 
> > > > > > > > > > Oleg
> > > > > > > > > > 
> > > > > > > > > > 
> > > > > > > > > > 
> > > > > > > > > > > > 
> > > > > > > > > > > > Bindul
> > > > > > > > > > > > 
> > > > > > > > > > > > > 
> > > > > > > > > > > > > Gary
> > > > > > > > > > > > > 
> > > > > > > > > > > > > 
> > > > > > > > > > > > > > Oleg
> > > > > > > > > > > > > > 
> > > > > > > > > > > > > > ------------------------------
> > > > 
> > > > ------------------------------
> > > > > > -
> > > > > > > > > > > > > > --------
> > > > > > > > > > > > > > To unsubscribe, e-mail: dev-unsubscribe@hc.
> > > > > > > > > > > > > > apache.org
> > > > > > > > > > > > > > For additional commands, e-mail: dev-help@h
> > > > > > > > > > > > > > c.apache.org
> > > > > > > > > > > > > > 
> > > > > > > > > > > > > > 
> > > > > > > > > > > > > 
> > > > > > > > > > > > > 
> > > > > > > > > > > > > --
> > > > > > > > > > > > > E-Mail: garydgregory@gmail.com | ggregory@apa
> > > > > > > > > > > > > che.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-unsubscribe@hc.apac
> > > > > > > > > > > > he.org
> > > > > > > > > > > > For additional commands, e-mail: dev-help@hc.ap
> > > > > > > > > > > > ache.org
> > > > > > > > > > > > 
> > > > > > > > > > > > 
> > > > > > > > > > > 
> > > > > > > > > > > 
> > > > > > > > > > 
> > > > > > > > > > -------------------------------------------------
> > > > > > > > > > -----------
> > > > > > 
> > > > > > ---------
> > > > > > > > > > To unsubscribe, e-mail: dev-unsubscribe@hc.apache.o
> > > > > > > > > > rg
> > > > > > > > > > For additional commands, e-mail: dev-help@hc.apache
> > > > > > > > > > .org
> > > > > > > > > > 
> > > > > > > > > > 
> > > > > > > > > 
> > > > > > > > > 
> > > > > > > > > --
> > > > > > > > > E-Mail: garydgregory@gmail.com | ggregory@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=1617290
> > > > > > > > 459&
> > > > > > > > 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=1935182
> > > > > > > > 021&
> > > > > > > > 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=1935182
> > > > > > > > 951&
> > > > > > > > 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@hc.apache.org
> > > > > > > > For additional commands, e-mail: dev-help@hc.apache.org
> > > > > > > > 
> > > > > > > > 
> > > > > > > 
> > > > > > > 
> > > > > > > --
> > > > > > > E-Mail: garydgregory@gmail.com | ggregory@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@hc.apache.org
> > > > > > For additional commands, e-mail: dev-help@hc.apache.org
> > > > > > 
> > > > > > 
> > > > > 
> > > > > 
> > > > > --
> > > > > E-Mail: garydgregory@gmail.com | ggregory@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
> > > > 
> > > > -------------------------------------------------------------
> > > > --------
> > > > To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
> > > > For additional commands, e-mail: dev-help@hc.apache.org
> > > > 
> > > > 
> > > 
> > > 
> > > --
> > > E-Mail: garydgregory@gmail.com | ggregory@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-unsubscribe@hc.apache.org
> > For additional commands, e-mail: dev-help@hc.apache.org
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
> For additional commands, e-mail: dev-help@hc.apache.org
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org


Re: SocketConfig (v5)

Posted by sebb <se...@gmail.com>.
On 30 March 2017 at 02:27, Gary Gregory <ga...@gmail.com> wrote:
> On Mar 29, 2017 5:31 PM, "sebb" <se...@gmail.com> wrote:
>
> On 29 March 2017 at 21:50, Gary Gregory <ga...@gmail.com> wrote:
>> I really want to do this TimeValue thing but when I look at Java 8, I see
>> the Duration class.
>>
>> So why not move HC to Java 8? Why are we hung up on Java 7?
>
> We keep having this discussion.
> Just because the Java 8 suits developers does not mean it suits users.
>
> There are lots of users who cannot upgrade easily (or at all) so we
> should not exclude them just because it is a bit easier for some devs.
>
>
> It feels to me like we are way too conservative here. Hibernate, Teiid,
> Jetty are on Java 8 already. How long is long enough?

Those are generally further up the dependency chain.

HC (and most of Commons) can be buried deep in systems where upgrading
Java is not an option.

> Gary
>
>
>> Gary
>>
>> On Thu, Feb 16, 2017 at 6:47 AM, sebb <se...@gmail.com> wrote:
>>
>>> On 15 February 2017 at 19:10, Gary Gregory <ga...@gmail.com>
> wrote:
>>> > On Wed, Feb 15, 2017 at 7:49 AM, sebb <se...@gmail.com> wrote:
>>> >
>>> >> On 15 February 2017 at 05:20, Gary Gregory <ga...@gmail.com>
>>> wrote:
>>> >> > I like the idea of having at least setTimeout(long, TimeUnit), and
> as
>>> a
>>> >> > convenience setTimeoutMillis. This is Millis because milliseconds is
>>> the
>>> >> > underlying scale used by the socket API.
>>> >> >
>>> >> > The question is whether we should add a TimeValue class
>>> >> > setTimeout(TimeValue). The next step is to have a TimeValue subclass
>>> >> called
>>> >> > Timeout to make the API even more strongly typed.
>>> >>
>>> >> Not sure I see why a timeout period is different from any other time
>>> >> period.
>>> >> So I don't see how it helps to use a different class for the
> setTimeout
>>> >> method.
>>> >>
>>> >> Would there also be a SleepTime sub-class for a pause function?
>>> >>
>>> >
>>> > I do not see use cases at this time for more TimeValue subclasses. It
>>> > really depends if there is a chance of confusion from the call site's
>>> POV.
>>> > For, now, I think a TimeValue class will be enough.
>>>
>>> I agree.
>>>
>>> However I took your mail to mean you wanted to create a subclass of
>>> TimeValue called TimeOut:
>>>
>>> <quote>
>>> The next step is to have a TimeValue subclass called
>>> Timeout to make the API even more strongly typed.
>>>
>>> We could end up with:
>>>
>>> setTimeout(long, TimeUnit)
>>> setTimeoutMillis(long)
>>> setTimeout(Timeout)
>>> </quote>
>>>
>>> Do you still think a TimeOut subclass is needed?
>>>
>>>
>>> > Gary
>>> >
>>> >
>>> >>
>>> >> > We could end up with:
>>> >> >
>>> >> > setTimeout(long, TimeUnit)
>>> >> > setTimeoutMillis(long)
>>> >> > setTimeout(Timeout)
>>> >> >
>>> >> > ?
>>> >> > Gary
>>> >> >
>>> >> > On Fri, Feb 10, 2017 at 4:15 PM, sebb <se...@gmail.com> wrote:
>>> >> >
>>> >> >> Does it make sense to use timeout units other than seconds?
>>> >> >>
>>> >> >> If not, just use
>>> >> >>
>>> >> >> [get|set]TimeoutSeconds
>>> >> >>
>>> >> >> Or if there is a need for milliseconds, then either add
>>> >> >>
>>> >> >> [get|set]TimeoutMilliSeconds
>>> >> >>
>>> >> >> or only provide that.
>>> >> >>
>>> >> >>
>>> >> >>
>>> >> >> On 10 February 2017 at 19:51, Gary Gregory <ga...@gmail.com>
>>> >> wrote:
>>> >> >> > On Fri, Feb 10, 2017 at 2:10 AM, Oleg Kalnichevski <
>>> olegk@apache.org>
>>> >> >> wrote:
>>> >> >> >
>>> >> >> >> On Thu, 2017-02-09 at 14:18 -0800, Gary Gregory wrote:
>>> >> >> >> > On Thu, Feb 9, 2017 at 1:56 PM, Bhowmik, Bindul
>>> >> <bindulbhowmik@gmail.
>>> >> >> >> > com>
>>> >> >> >> >
>>> >> >> >>
>>> >> >> >> ...
>>> >> >> >>
>>> >> >> >> > > How about getSoTimeout(TimeUnit) ? Maybe in addition to
>>> >> >> >> > > getSoTimeoutMillis().
>>> >> >> >> > >
>>> >> >> >> >
>>> >> >> >> > I'm fine with that. My concern is mostly on the setter side.
>>> >> >> >> >
>>> >> >> >> > Gary
>>> >> >> >> >
>>> >> >> >>
>>> >> >> >> I find getter / setter inconsistency equally not-nice. What
> about
>>> >> using
>>> >> >> >> a tuple class for all time value settings
>>> >> >> >>
>>> >> >> >> class TimeValue {
>>> >> >> >>   long value;
>>> >> >> >>   TimeUnit unit;
>>> >> >> >>
>>> >> >> >> }
>>> >> >> >>
>>> >> >> >> Or some such?
>>> >> >> >>
>>> >> >> >
>>> >> >> > Maybe... this becomes wordy though:
>>> >> >> >
>>> >> >> > config.setTimeout(TimeValue.of(1, TimeUnit.SECONDS));
>>> >> >> >
>>> >> >> > instead of
>>> >> >> >
>>> >> >> > config.setTimeout(1, TimeUnit.SECONDS);
>>> >> >> >
>>> >> >> > which is what I see in the JRE here and there.
>>> >> >> >
>>> >> >> > The nice thing about TimeValue is that the object that uses it
> does
>>> >> not
>>> >> >> > need to worry about scale in its implementation.
>>> >> >> >
>>> >> >> > If I am coding a Socket class, I have to remember that soTimeout
>>> is in
>>> >> >> > milliseconds. If I write the ivar as "soTimeoutMillis" I am
>>> >> documenting
>>> >> >> the
>>> >> >> > scale but I am not enforcing it.
>>> >> >> >
>>> >> >> > So I can see that TimeValue, DistanceValue and so one would make
>>> for
>>> >> >> safer
>>> >> >> > modeling. Less risk of crashing that Mars craft because one team
>>> was
>>> >> >> > thinking in metric units and the other in imperial units.
>>> >> >> >
>>> >> >> > So from an implementer's POV I like TimeValue. But from a user's
>>> POV
>>> >> >> should
>>> >> >> > I have the convenience of setTimeout(long, TimeUnit) AND
>>> >> >> > setTimeout(TimeValue).
>>> >> >> >
>>> >> >> > Gary
>>> >> >> >
>>> >> >> >
>>> >> >> >> Oleg
>>> >> >> >>
>>> >> >> >>
>>> >> >> >>
>>> >> >> >> > >
>>> >> >> >> > > Bindul
>>> >> >> >> > >
>>> >> >> >> > > >
>>> >> >> >> > > > Gary
>>> >> >> >> > > >
>>> >> >> >> > > >
>>> >> >> >> > > > > Oleg
>>> >> >> >> > > > >
>>> >> >> >> > > > > ------------------------------
>>> ------------------------------
>>> >> -
>>> >> >> >> > > > > --------
>>> >> >> >> > > > > To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
>>> >> >> >> > > > > For additional commands, e-mail: dev-help@hc.apache.org
>>> >> >> >> > > > >
>>> >> >> >> > > > >
>>> >> >> >> > > >
>>> >> >> >> > > >
>>> >> >> >> > > > --
>>> >> >> >> > > > E-Mail: garydgregory@gmail.com | ggregory@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-unsubscribe@hc.apache.org
>>> >> >> >> > > For additional commands, e-mail: dev-help@hc.apache.org
>>> >> >> >> > >
>>> >> >> >> > >
>>> >> >> >> >
>>> >> >> >> >
>>> >> >> >>
>>> >> >> >> ------------------------------------------------------------
>>> >> ---------
>>> >> >> >> To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
>>> >> >> >> For additional commands, e-mail: dev-help@hc.apache.org
>>> >> >> >>
>>> >> >> >>
>>> >> >> >
>>> >> >> >
>>> >> >> > --
>>> >> >> > E-Mail: garydgregory@gmail.com | ggregory@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@hc.apache.org
>>> >> >> For additional commands, e-mail: dev-help@hc.apache.org
>>> >> >>
>>> >> >>
>>> >> >
>>> >> >
>>> >> > --
>>> >> > E-Mail: garydgregory@gmail.com | ggregory@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@hc.apache.org
>>> >> For additional commands, e-mail: dev-help@hc.apache.org
>>> >>
>>> >>
>>> >
>>> >
>>> > --
>>> > E-Mail: garydgregory@gmail.com | ggregory@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
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
>>> For additional commands, e-mail: dev-help@hc.apache.org
>>>
>>>
>>
>>
>> --
>> E-Mail: garydgregory@gmail.com | ggregory@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-unsubscribe@hc.apache.org
> For additional commands, e-mail: dev-help@hc.apache.org

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org


Re: SocketConfig (v5)

Posted by Gary Gregory <ga...@gmail.com>.
On Mar 29, 2017 5:31 PM, "sebb" <se...@gmail.com> wrote:

On 29 March 2017 at 21:50, Gary Gregory <ga...@gmail.com> wrote:
> I really want to do this TimeValue thing but when I look at Java 8, I see
> the Duration class.
>
> So why not move HC to Java 8? Why are we hung up on Java 7?

We keep having this discussion.
Just because the Java 8 suits developers does not mean it suits users.

There are lots of users who cannot upgrade easily (or at all) so we
should not exclude them just because it is a bit easier for some devs.


It feels to me like we are way too conservative here. Hibernate, Teiid,
Jetty are on Java 8 already. How long is long enough?

Gary


> Gary
>
> On Thu, Feb 16, 2017 at 6:47 AM, sebb <se...@gmail.com> wrote:
>
>> On 15 February 2017 at 19:10, Gary Gregory <ga...@gmail.com>
wrote:
>> > On Wed, Feb 15, 2017 at 7:49 AM, sebb <se...@gmail.com> wrote:
>> >
>> >> On 15 February 2017 at 05:20, Gary Gregory <ga...@gmail.com>
>> wrote:
>> >> > I like the idea of having at least setTimeout(long, TimeUnit), and
as
>> a
>> >> > convenience setTimeoutMillis. This is Millis because milliseconds is
>> the
>> >> > underlying scale used by the socket API.
>> >> >
>> >> > The question is whether we should add a TimeValue class
>> >> > setTimeout(TimeValue). The next step is to have a TimeValue subclass
>> >> called
>> >> > Timeout to make the API even more strongly typed.
>> >>
>> >> Not sure I see why a timeout period is different from any other time
>> >> period.
>> >> So I don't see how it helps to use a different class for the
setTimeout
>> >> method.
>> >>
>> >> Would there also be a SleepTime sub-class for a pause function?
>> >>
>> >
>> > I do not see use cases at this time for more TimeValue subclasses. It
>> > really depends if there is a chance of confusion from the call site's
>> POV.
>> > For, now, I think a TimeValue class will be enough.
>>
>> I agree.
>>
>> However I took your mail to mean you wanted to create a subclass of
>> TimeValue called TimeOut:
>>
>> <quote>
>> The next step is to have a TimeValue subclass called
>> Timeout to make the API even more strongly typed.
>>
>> We could end up with:
>>
>> setTimeout(long, TimeUnit)
>> setTimeoutMillis(long)
>> setTimeout(Timeout)
>> </quote>
>>
>> Do you still think a TimeOut subclass is needed?
>>
>>
>> > Gary
>> >
>> >
>> >>
>> >> > We could end up with:
>> >> >
>> >> > setTimeout(long, TimeUnit)
>> >> > setTimeoutMillis(long)
>> >> > setTimeout(Timeout)
>> >> >
>> >> > ?
>> >> > Gary
>> >> >
>> >> > On Fri, Feb 10, 2017 at 4:15 PM, sebb <se...@gmail.com> wrote:
>> >> >
>> >> >> Does it make sense to use timeout units other than seconds?
>> >> >>
>> >> >> If not, just use
>> >> >>
>> >> >> [get|set]TimeoutSeconds
>> >> >>
>> >> >> Or if there is a need for milliseconds, then either add
>> >> >>
>> >> >> [get|set]TimeoutMilliSeconds
>> >> >>
>> >> >> or only provide that.
>> >> >>
>> >> >>
>> >> >>
>> >> >> On 10 February 2017 at 19:51, Gary Gregory <ga...@gmail.com>
>> >> wrote:
>> >> >> > On Fri, Feb 10, 2017 at 2:10 AM, Oleg Kalnichevski <
>> olegk@apache.org>
>> >> >> wrote:
>> >> >> >
>> >> >> >> On Thu, 2017-02-09 at 14:18 -0800, Gary Gregory wrote:
>> >> >> >> > On Thu, Feb 9, 2017 at 1:56 PM, Bhowmik, Bindul
>> >> <bindulbhowmik@gmail.
>> >> >> >> > com>
>> >> >> >> >
>> >> >> >>
>> >> >> >> ...
>> >> >> >>
>> >> >> >> > > How about getSoTimeout(TimeUnit) ? Maybe in addition to
>> >> >> >> > > getSoTimeoutMillis().
>> >> >> >> > >
>> >> >> >> >
>> >> >> >> > I'm fine with that. My concern is mostly on the setter side.
>> >> >> >> >
>> >> >> >> > Gary
>> >> >> >> >
>> >> >> >>
>> >> >> >> I find getter / setter inconsistency equally not-nice. What
about
>> >> using
>> >> >> >> a tuple class for all time value settings
>> >> >> >>
>> >> >> >> class TimeValue {
>> >> >> >>   long value;
>> >> >> >>   TimeUnit unit;
>> >> >> >>
>> >> >> >> }
>> >> >> >>
>> >> >> >> Or some such?
>> >> >> >>
>> >> >> >
>> >> >> > Maybe... this becomes wordy though:
>> >> >> >
>> >> >> > config.setTimeout(TimeValue.of(1, TimeUnit.SECONDS));
>> >> >> >
>> >> >> > instead of
>> >> >> >
>> >> >> > config.setTimeout(1, TimeUnit.SECONDS);
>> >> >> >
>> >> >> > which is what I see in the JRE here and there.
>> >> >> >
>> >> >> > The nice thing about TimeValue is that the object that uses it
does
>> >> not
>> >> >> > need to worry about scale in its implementation.
>> >> >> >
>> >> >> > If I am coding a Socket class, I have to remember that soTimeout
>> is in
>> >> >> > milliseconds. If I write the ivar as "soTimeoutMillis" I am
>> >> documenting
>> >> >> the
>> >> >> > scale but I am not enforcing it.
>> >> >> >
>> >> >> > So I can see that TimeValue, DistanceValue and so one would make
>> for
>> >> >> safer
>> >> >> > modeling. Less risk of crashing that Mars craft because one team
>> was
>> >> >> > thinking in metric units and the other in imperial units.
>> >> >> >
>> >> >> > So from an implementer's POV I like TimeValue. But from a user's
>> POV
>> >> >> should
>> >> >> > I have the convenience of setTimeout(long, TimeUnit) AND
>> >> >> > setTimeout(TimeValue).
>> >> >> >
>> >> >> > Gary
>> >> >> >
>> >> >> >
>> >> >> >> Oleg
>> >> >> >>
>> >> >> >>
>> >> >> >>
>> >> >> >> > >
>> >> >> >> > > Bindul
>> >> >> >> > >
>> >> >> >> > > >
>> >> >> >> > > > Gary
>> >> >> >> > > >
>> >> >> >> > > >
>> >> >> >> > > > > Oleg
>> >> >> >> > > > >
>> >> >> >> > > > > ------------------------------
>> ------------------------------
>> >> -
>> >> >> >> > > > > --------
>> >> >> >> > > > > To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
>> >> >> >> > > > > For additional commands, e-mail: dev-help@hc.apache.org
>> >> >> >> > > > >
>> >> >> >> > > > >
>> >> >> >> > > >
>> >> >> >> > > >
>> >> >> >> > > > --
>> >> >> >> > > > E-Mail: garydgregory@gmail.com | ggregory@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-unsubscribe@hc.apache.org
>> >> >> >> > > For additional commands, e-mail: dev-help@hc.apache.org
>> >> >> >> > >
>> >> >> >> > >
>> >> >> >> >
>> >> >> >> >
>> >> >> >>
>> >> >> >> ------------------------------------------------------------
>> >> ---------
>> >> >> >> To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
>> >> >> >> For additional commands, e-mail: dev-help@hc.apache.org
>> >> >> >>
>> >> >> >>
>> >> >> >
>> >> >> >
>> >> >> > --
>> >> >> > E-Mail: garydgregory@gmail.com | ggregory@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@hc.apache.org
>> >> >> For additional commands, e-mail: dev-help@hc.apache.org
>> >> >>
>> >> >>
>> >> >
>> >> >
>> >> > --
>> >> > E-Mail: garydgregory@gmail.com | ggregory@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@hc.apache.org
>> >> For additional commands, e-mail: dev-help@hc.apache.org
>> >>
>> >>
>> >
>> >
>> > --
>> > E-Mail: garydgregory@gmail.com | ggregory@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
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
>> For additional commands, e-mail: dev-help@hc.apache.org
>>
>>
>
>
> --
> E-Mail: garydgregory@gmail.com | ggregory@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-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org

Re: SocketConfig (v5)

Posted by sebb <se...@gmail.com>.
On 29 March 2017 at 21:50, Gary Gregory <ga...@gmail.com> wrote:
> I really want to do this TimeValue thing but when I look at Java 8, I see
> the Duration class.
>
> So why not move HC to Java 8? Why are we hung up on Java 7?

We keep having this discussion.
Just because the Java 8 suits developers does not mean it suits users.

There are lots of users who cannot upgrade easily (or at all) so we
should not exclude them just because it is a bit easier for some devs.

> Gary
>
> On Thu, Feb 16, 2017 at 6:47 AM, sebb <se...@gmail.com> wrote:
>
>> On 15 February 2017 at 19:10, Gary Gregory <ga...@gmail.com> wrote:
>> > On Wed, Feb 15, 2017 at 7:49 AM, sebb <se...@gmail.com> wrote:
>> >
>> >> On 15 February 2017 at 05:20, Gary Gregory <ga...@gmail.com>
>> wrote:
>> >> > I like the idea of having at least setTimeout(long, TimeUnit), and as
>> a
>> >> > convenience setTimeoutMillis. This is Millis because milliseconds is
>> the
>> >> > underlying scale used by the socket API.
>> >> >
>> >> > The question is whether we should add a TimeValue class
>> >> > setTimeout(TimeValue). The next step is to have a TimeValue subclass
>> >> called
>> >> > Timeout to make the API even more strongly typed.
>> >>
>> >> Not sure I see why a timeout period is different from any other time
>> >> period.
>> >> So I don't see how it helps to use a different class for the setTimeout
>> >> method.
>> >>
>> >> Would there also be a SleepTime sub-class for a pause function?
>> >>
>> >
>> > I do not see use cases at this time for more TimeValue subclasses. It
>> > really depends if there is a chance of confusion from the call site's
>> POV.
>> > For, now, I think a TimeValue class will be enough.
>>
>> I agree.
>>
>> However I took your mail to mean you wanted to create a subclass of
>> TimeValue called TimeOut:
>>
>> <quote>
>> The next step is to have a TimeValue subclass called
>> Timeout to make the API even more strongly typed.
>>
>> We could end up with:
>>
>> setTimeout(long, TimeUnit)
>> setTimeoutMillis(long)
>> setTimeout(Timeout)
>> </quote>
>>
>> Do you still think a TimeOut subclass is needed?
>>
>>
>> > Gary
>> >
>> >
>> >>
>> >> > We could end up with:
>> >> >
>> >> > setTimeout(long, TimeUnit)
>> >> > setTimeoutMillis(long)
>> >> > setTimeout(Timeout)
>> >> >
>> >> > ?
>> >> > Gary
>> >> >
>> >> > On Fri, Feb 10, 2017 at 4:15 PM, sebb <se...@gmail.com> wrote:
>> >> >
>> >> >> Does it make sense to use timeout units other than seconds?
>> >> >>
>> >> >> If not, just use
>> >> >>
>> >> >> [get|set]TimeoutSeconds
>> >> >>
>> >> >> Or if there is a need for milliseconds, then either add
>> >> >>
>> >> >> [get|set]TimeoutMilliSeconds
>> >> >>
>> >> >> or only provide that.
>> >> >>
>> >> >>
>> >> >>
>> >> >> On 10 February 2017 at 19:51, Gary Gregory <ga...@gmail.com>
>> >> wrote:
>> >> >> > On Fri, Feb 10, 2017 at 2:10 AM, Oleg Kalnichevski <
>> olegk@apache.org>
>> >> >> wrote:
>> >> >> >
>> >> >> >> On Thu, 2017-02-09 at 14:18 -0800, Gary Gregory wrote:
>> >> >> >> > On Thu, Feb 9, 2017 at 1:56 PM, Bhowmik, Bindul
>> >> <bindulbhowmik@gmail.
>> >> >> >> > com>
>> >> >> >> >
>> >> >> >>
>> >> >> >> ...
>> >> >> >>
>> >> >> >> > > How about getSoTimeout(TimeUnit) ? Maybe in addition to
>> >> >> >> > > getSoTimeoutMillis().
>> >> >> >> > >
>> >> >> >> >
>> >> >> >> > I'm fine with that. My concern is mostly on the setter side.
>> >> >> >> >
>> >> >> >> > Gary
>> >> >> >> >
>> >> >> >>
>> >> >> >> I find getter / setter inconsistency equally not-nice. What about
>> >> using
>> >> >> >> a tuple class for all time value settings
>> >> >> >>
>> >> >> >> class TimeValue {
>> >> >> >>   long value;
>> >> >> >>   TimeUnit unit;
>> >> >> >>
>> >> >> >> }
>> >> >> >>
>> >> >> >> Or some such?
>> >> >> >>
>> >> >> >
>> >> >> > Maybe... this becomes wordy though:
>> >> >> >
>> >> >> > config.setTimeout(TimeValue.of(1, TimeUnit.SECONDS));
>> >> >> >
>> >> >> > instead of
>> >> >> >
>> >> >> > config.setTimeout(1, TimeUnit.SECONDS);
>> >> >> >
>> >> >> > which is what I see in the JRE here and there.
>> >> >> >
>> >> >> > The nice thing about TimeValue is that the object that uses it does
>> >> not
>> >> >> > need to worry about scale in its implementation.
>> >> >> >
>> >> >> > If I am coding a Socket class, I have to remember that soTimeout
>> is in
>> >> >> > milliseconds. If I write the ivar as "soTimeoutMillis" I am
>> >> documenting
>> >> >> the
>> >> >> > scale but I am not enforcing it.
>> >> >> >
>> >> >> > So I can see that TimeValue, DistanceValue and so one would make
>> for
>> >> >> safer
>> >> >> > modeling. Less risk of crashing that Mars craft because one team
>> was
>> >> >> > thinking in metric units and the other in imperial units.
>> >> >> >
>> >> >> > So from an implementer's POV I like TimeValue. But from a user's
>> POV
>> >> >> should
>> >> >> > I have the convenience of setTimeout(long, TimeUnit) AND
>> >> >> > setTimeout(TimeValue).
>> >> >> >
>> >> >> > Gary
>> >> >> >
>> >> >> >
>> >> >> >> Oleg
>> >> >> >>
>> >> >> >>
>> >> >> >>
>> >> >> >> > >
>> >> >> >> > > Bindul
>> >> >> >> > >
>> >> >> >> > > >
>> >> >> >> > > > Gary
>> >> >> >> > > >
>> >> >> >> > > >
>> >> >> >> > > > > Oleg
>> >> >> >> > > > >
>> >> >> >> > > > > ------------------------------
>> ------------------------------
>> >> -
>> >> >> >> > > > > --------
>> >> >> >> > > > > To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
>> >> >> >> > > > > For additional commands, e-mail: dev-help@hc.apache.org
>> >> >> >> > > > >
>> >> >> >> > > > >
>> >> >> >> > > >
>> >> >> >> > > >
>> >> >> >> > > > --
>> >> >> >> > > > E-Mail: garydgregory@gmail.com | ggregory@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-unsubscribe@hc.apache.org
>> >> >> >> > > For additional commands, e-mail: dev-help@hc.apache.org
>> >> >> >> > >
>> >> >> >> > >
>> >> >> >> >
>> >> >> >> >
>> >> >> >>
>> >> >> >> ------------------------------------------------------------
>> >> ---------
>> >> >> >> To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
>> >> >> >> For additional commands, e-mail: dev-help@hc.apache.org
>> >> >> >>
>> >> >> >>
>> >> >> >
>> >> >> >
>> >> >> > --
>> >> >> > E-Mail: garydgregory@gmail.com | ggregory@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@hc.apache.org
>> >> >> For additional commands, e-mail: dev-help@hc.apache.org
>> >> >>
>> >> >>
>> >> >
>> >> >
>> >> > --
>> >> > E-Mail: garydgregory@gmail.com | ggregory@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@hc.apache.org
>> >> For additional commands, e-mail: dev-help@hc.apache.org
>> >>
>> >>
>> >
>> >
>> > --
>> > E-Mail: garydgregory@gmail.com | ggregory@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-unsubscribe@hc.apache.org
>> For additional commands, e-mail: dev-help@hc.apache.org
>>
>>
>
>
> --
> E-Mail: garydgregory@gmail.com | ggregory@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-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org


Re: SocketConfig (v5)

Posted by Gary Gregory <ga...@gmail.com>.
On Thu, Mar 30, 2017 at 6:57 AM, Oleg Kalnichevski <ol...@apache.org> wrote:

> On Wed, 2017-03-29 at 13:55 -0700, Gary Gregory wrote:
> > On Wed, Mar 29, 2017 at 1:50 PM, Gary Gregory <garydgregory@gmail.com
> > >
> > wrote:
> >
> > > I really want to do this TimeValue thing but when I look at Java 8,
> > > I see
> > > the Duration class.
> > >
> > > So why not move HC to Java 8? Why are we hung up on Java 7?
> > >
> >
> > FWIW, for Java 7, I am thinking of something like this:
> >
>
> Looks good to me. Please do use Args.notNull to ensure that timeUnit is
> valid, though.
>

Done.

Gary


>
> Oleg
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
> For additional commands, e-mail: dev-help@hc.apache.org
>
>


-- 
E-Mail: garydgregory@gmail.com | ggregory@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

Re: SocketConfig (v5)

Posted by Gary Gregory <ga...@gmail.com>.
On Fri, Mar 31, 2017 at 12:56 PM, Gary Gregory <ga...@gmail.com>
wrote:

> The first use case of TimeValue is in HttpCore trunk (5.0), the
> SocketConfig class has been updated to use TimeValue for connectTimeout
> (was int millis), soTimeout (was int millis), and soLinger (was int
> seconds). The only part that I am not 100% sure about is how to deal with
> TimeValue long values and the JRE IO APIs that take int values. See the use
> of the method TimeValue.asBoundInt(long).
>

I am wondering if we should have a bunch of methods on that return ints as
well as longs. Or if we should have an IntTimeValue class.

Thoughts?

Gary


>
> Gary
>
> On Thu, Mar 30, 2017 at 6:57 AM, Oleg Kalnichevski <ol...@apache.org>
> wrote:
>
>> On Wed, 2017-03-29 at 13:55 -0700, Gary Gregory wrote:
>> > On Wed, Mar 29, 2017 at 1:50 PM, Gary Gregory <garydgregory@gmail.com
>> > >
>> > wrote:
>> >
>> > > I really want to do this TimeValue thing but when I look at Java 8,
>> > > I see
>> > > the Duration class.
>> > >
>> > > So why not move HC to Java 8? Why are we hung up on Java 7?
>> > >
>> >
>> > FWIW, for Java 7, I am thinking of something like this:
>> >
>>
>> Looks good to me. Please do use Args.notNull to ensure that timeUnit is
>> valid, though.
>>
>> Oleg
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
>> For additional commands, e-mail: dev-help@hc.apache.org
>>
>>
>
>
> --
> E-Mail: garydgregory@gmail.com | ggregory@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: garydgregory@gmail.com | ggregory@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

Re: SocketConfig (v5)

Posted by Gary Gregory <ga...@gmail.com>.
The first use case of TimeValue is in HttpCore trunk (5.0), the
SocketConfig class has been updated to use TimeValue for connectTimeout
(was int millis), soTimeout (was int millis), and soLinger (was int
seconds). The only part that I am not 100% sure about is how to deal with
TimeValue long values and the JRE IO APIs that take int values. See the use
of the method TimeValue.asBoundInt(long).

Gary

On Thu, Mar 30, 2017 at 6:57 AM, Oleg Kalnichevski <ol...@apache.org> wrote:

> On Wed, 2017-03-29 at 13:55 -0700, Gary Gregory wrote:
> > On Wed, Mar 29, 2017 at 1:50 PM, Gary Gregory <garydgregory@gmail.com
> > >
> > wrote:
> >
> > > I really want to do this TimeValue thing but when I look at Java 8,
> > > I see
> > > the Duration class.
> > >
> > > So why not move HC to Java 8? Why are we hung up on Java 7?
> > >
> >
> > FWIW, for Java 7, I am thinking of something like this:
> >
>
> Looks good to me. Please do use Args.notNull to ensure that timeUnit is
> valid, though.
>
> Oleg
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
> For additional commands, e-mail: dev-help@hc.apache.org
>
>


-- 
E-Mail: garydgregory@gmail.com | ggregory@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

Re: SocketConfig (v5)

Posted by Oleg Kalnichevski <ol...@apache.org>.
On Wed, 2017-03-29 at 13:55 -0700, Gary Gregory wrote:
> On Wed, Mar 29, 2017 at 1:50 PM, Gary Gregory <garydgregory@gmail.com
> >
> wrote:
> 
> > I really want to do this TimeValue thing but when I look at Java 8,
> > I see
> > the Duration class.
> > 
> > So why not move HC to Java 8? Why are we hung up on Java 7?
> > 
> 
> FWIW, for Java 7, I am thinking of something like this:
> 

Looks good to me. Please do use Args.notNull to ensure that timeUnit is
valid, though.

Oleg


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org


Re: SocketConfig (v5)

Posted by Gary Gregory <ga...@gmail.com>.
On Wed, Mar 29, 2017 at 1:50 PM, Gary Gregory <ga...@gmail.com>
wrote:

> I really want to do this TimeValue thing but when I look at Java 8, I see
> the Duration class.
>
> So why not move HC to Java 8? Why are we hung up on Java 7?
>

FWIW, for Java 7, I am thinking of something like this:

/*
 * ====================================================================
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 * ====================================================================
 *
 * This software consists of voluntary contributions made by many
 * individuals on behalf of the Apache Software Foundation.  For more
 * information on the Apache Software Foundation, please see
 * <http://www.apache.org/>.
 *
 */

package org.apache.hc.core5.util;

import java.util.concurrent.TimeUnit;

/**
 * Wraps a time (long) and TimeUnit.
 */
public class TimeValue {

    private final long duration;

    private final TimeUnit timeUnit;

    public TimeValue(long duration, TimeUnit timeUnit) {
        super();
        this.duration = duration;
        this.timeUnit = timeUnit;
    }

    public long convert(TimeUnit sourceUnit) {
        return timeUnit.convert(duration, sourceUnit);
    }

    public long getDuration() {
        return duration;
    }

    public TimeUnit getTimeUnit() {
        return timeUnit;
    }

    public void sleep() throws InterruptedException {
        timeUnit.sleep(duration);
    }

    public void timedJoin(Thread thread) throws InterruptedException {
        timeUnit.timedJoin(thread, duration);
    }

    public void timedWait(Object obj) throws InterruptedException {
        timeUnit.timedWait(obj, duration);
    }

    public long toDays() {
        return timeUnit.toDays(duration);
    }

    public long toHours() {
        return timeUnit.toHours(duration);
    }

    public long toMicros() {
        return timeUnit.toMicros(duration);
    }

    public long toMillis() {
        return timeUnit.toMillis(duration);
    }

    public long toMinutes() {
        return timeUnit.toMinutes(duration);
    }

    public long toNanos() {
        return timeUnit.toNanos(duration);
    }

    public long toSeconds() {
        return timeUnit.toSeconds(duration);
    }

    @Override
    public String toString() {
        return String.format("%,d %s", Long.valueOf(duration), timeUnit);
    }
}

Gary

>
> Gary
>
> On Thu, Feb 16, 2017 at 6:47 AM, sebb <se...@gmail.com> wrote:
>
>> On 15 February 2017 at 19:10, Gary Gregory <ga...@gmail.com>
>> wrote:
>> > On Wed, Feb 15, 2017 at 7:49 AM, sebb <se...@gmail.com> wrote:
>> >
>> >> On 15 February 2017 at 05:20, Gary Gregory <ga...@gmail.com>
>> wrote:
>> >> > I like the idea of having at least setTimeout(long, TimeUnit), and
>> as a
>> >> > convenience setTimeoutMillis. This is Millis because milliseconds is
>> the
>> >> > underlying scale used by the socket API.
>> >> >
>> >> > The question is whether we should add a TimeValue class
>> >> > setTimeout(TimeValue). The next step is to have a TimeValue subclass
>> >> called
>> >> > Timeout to make the API even more strongly typed.
>> >>
>> >> Not sure I see why a timeout period is different from any other time
>> >> period.
>> >> So I don't see how it helps to use a different class for the setTimeout
>> >> method.
>> >>
>> >> Would there also be a SleepTime sub-class for a pause function?
>> >>
>> >
>> > I do not see use cases at this time for more TimeValue subclasses. It
>> > really depends if there is a chance of confusion from the call site's
>> POV.
>> > For, now, I think a TimeValue class will be enough.
>>
>> I agree.
>>
>> However I took your mail to mean you wanted to create a subclass of
>> TimeValue called TimeOut:
>>
>> <quote>
>> The next step is to have a TimeValue subclass called
>> Timeout to make the API even more strongly typed.
>>
>> We could end up with:
>>
>> setTimeout(long, TimeUnit)
>> setTimeoutMillis(long)
>> setTimeout(Timeout)
>> </quote>
>>
>> Do you still think a TimeOut subclass is needed?
>>
>>
>> > Gary
>> >
>> >
>> >>
>> >> > We could end up with:
>> >> >
>> >> > setTimeout(long, TimeUnit)
>> >> > setTimeoutMillis(long)
>> >> > setTimeout(Timeout)
>> >> >
>> >> > ?
>> >> > Gary
>> >> >
>> >> > On Fri, Feb 10, 2017 at 4:15 PM, sebb <se...@gmail.com> wrote:
>> >> >
>> >> >> Does it make sense to use timeout units other than seconds?
>> >> >>
>> >> >> If not, just use
>> >> >>
>> >> >> [get|set]TimeoutSeconds
>> >> >>
>> >> >> Or if there is a need for milliseconds, then either add
>> >> >>
>> >> >> [get|set]TimeoutMilliSeconds
>> >> >>
>> >> >> or only provide that.
>> >> >>
>> >> >>
>> >> >>
>> >> >> On 10 February 2017 at 19:51, Gary Gregory <ga...@gmail.com>
>> >> wrote:
>> >> >> > On Fri, Feb 10, 2017 at 2:10 AM, Oleg Kalnichevski <
>> olegk@apache.org>
>> >> >> wrote:
>> >> >> >
>> >> >> >> On Thu, 2017-02-09 at 14:18 -0800, Gary Gregory wrote:
>> >> >> >> > On Thu, Feb 9, 2017 at 1:56 PM, Bhowmik, Bindul
>> >> <bindulbhowmik@gmail.
>> >> >> >> > com>
>> >> >> >> >
>> >> >> >>
>> >> >> >> ...
>> >> >> >>
>> >> >> >> > > How about getSoTimeout(TimeUnit) ? Maybe in addition to
>> >> >> >> > > getSoTimeoutMillis().
>> >> >> >> > >
>> >> >> >> >
>> >> >> >> > I'm fine with that. My concern is mostly on the setter side.
>> >> >> >> >
>> >> >> >> > Gary
>> >> >> >> >
>> >> >> >>
>> >> >> >> I find getter / setter inconsistency equally not-nice. What about
>> >> using
>> >> >> >> a tuple class for all time value settings
>> >> >> >>
>> >> >> >> class TimeValue {
>> >> >> >>   long value;
>> >> >> >>   TimeUnit unit;
>> >> >> >>
>> >> >> >> }
>> >> >> >>
>> >> >> >> Or some such?
>> >> >> >>
>> >> >> >
>> >> >> > Maybe... this becomes wordy though:
>> >> >> >
>> >> >> > config.setTimeout(TimeValue.of(1, TimeUnit.SECONDS));
>> >> >> >
>> >> >> > instead of
>> >> >> >
>> >> >> > config.setTimeout(1, TimeUnit.SECONDS);
>> >> >> >
>> >> >> > which is what I see in the JRE here and there.
>> >> >> >
>> >> >> > The nice thing about TimeValue is that the object that uses it
>> does
>> >> not
>> >> >> > need to worry about scale in its implementation.
>> >> >> >
>> >> >> > If I am coding a Socket class, I have to remember that soTimeout
>> is in
>> >> >> > milliseconds. If I write the ivar as "soTimeoutMillis" I am
>> >> documenting
>> >> >> the
>> >> >> > scale but I am not enforcing it.
>> >> >> >
>> >> >> > So I can see that TimeValue, DistanceValue and so one would make
>> for
>> >> >> safer
>> >> >> > modeling. Less risk of crashing that Mars craft because one team
>> was
>> >> >> > thinking in metric units and the other in imperial units.
>> >> >> >
>> >> >> > So from an implementer's POV I like TimeValue. But from a user's
>> POV
>> >> >> should
>> >> >> > I have the convenience of setTimeout(long, TimeUnit) AND
>> >> >> > setTimeout(TimeValue).
>> >> >> >
>> >> >> > Gary
>> >> >> >
>> >> >> >
>> >> >> >> Oleg
>> >> >> >>
>> >> >> >>
>> >> >> >>
>> >> >> >> > >
>> >> >> >> > > Bindul
>> >> >> >> > >
>> >> >> >> > > >
>> >> >> >> > > > Gary
>> >> >> >> > > >
>> >> >> >> > > >
>> >> >> >> > > > > Oleg
>> >> >> >> > > > >
>> >> >> >> > > > > ------------------------------
>> ------------------------------
>> >> -
>> >> >> >> > > > > --------
>> >> >> >> > > > > To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
>> >> >> >> > > > > For additional commands, e-mail: dev-help@hc.apache.org
>> >> >> >> > > > >
>> >> >> >> > > > >
>> >> >> >> > > >
>> >> >> >> > > >
>> >> >> >> > > > --
>> >> >> >> > > > E-Mail: garydgregory@gmail.com | ggregory@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-unsubscribe@hc.apache.org
>> >> >> >> > > For additional commands, e-mail: dev-help@hc.apache.org
>> >> >> >> > >
>> >> >> >> > >
>> >> >> >> >
>> >> >> >> >
>> >> >> >>
>> >> >> >> ------------------------------------------------------------
>> >> ---------
>> >> >> >> To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
>> >> >> >> For additional commands, e-mail: dev-help@hc.apache.org
>> >> >> >>
>> >> >> >>
>> >> >> >
>> >> >> >
>> >> >> > --
>> >> >> > E-Mail: garydgregory@gmail.com | ggregory@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
>> >> >>
>> >> >> ------------------------------------------------------------
>> ---------
>> >> >> To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
>> >> >> For additional commands, e-mail: dev-help@hc.apache.org
>> >> >>
>> >> >>
>> >> >
>> >> >
>> >> > --
>> >> > E-Mail: garydgregory@gmail.com | ggregory@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
>> >>
>> >> ---------------------------------------------------------------------
>> >> To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
>> >> For additional commands, e-mail: dev-help@hc.apache.org
>> >>
>> >>
>> >
>> >
>> > --
>> > E-Mail: garydgregory@gmail.com | ggregory@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&link
>> Code=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&link
>> Code=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&link
>> Code=%7B%7BlinkCode%7D%7D&tag=garygregory-20&linkId=%7B%7Bli
>> nk_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@hc.apache.org
>> For additional commands, e-mail: dev-help@hc.apache.org
>>
>>
>
>
> --
> E-Mail: garydgregory@gmail.com | ggregory@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: garydgregory@gmail.com | ggregory@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