Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 2E030200C55 for ; Thu, 30 Mar 2017 03:27:54 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 2C995160B95; Thu, 30 Mar 2017 01:27:54 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 04181160B8A for ; Thu, 30 Mar 2017 03:27:52 +0200 (CEST) Received: (qmail 65375 invoked by uid 500); 30 Mar 2017 01:27:47 -0000 Mailing-List: contact dev-help@hc.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "HttpComponents Project" Delivered-To: mailing list dev@hc.apache.org Received: (qmail 65358 invoked by uid 99); 30 Mar 2017 01:27:46 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd3-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 30 Mar 2017 01:27:46 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd3-us-west.apache.org (ASF Mail Server at spamd3-us-west.apache.org) with ESMTP id 71A5B1857B0 for ; Thu, 30 Mar 2017 01:27:46 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd3-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 2.629 X-Spam-Level: ** X-Spam-Status: No, score=2.629 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=2, KAM_LOTSOFHASH=0.25, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_SORBS_SPAM=0.5, SPF_PASS=-0.001] autolearn=disabled Authentication-Results: spamd3-us-west.apache.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com Received: from mx1-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd3-us-west.apache.org [10.40.0.10]) (amavisd-new, port 10024) with ESMTP id t27yEPBOkVia for ; Thu, 30 Mar 2017 01:27:41 +0000 (UTC) Received: from mail-oi0-f46.google.com (mail-oi0-f46.google.com [209.85.218.46]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTPS id 6B8325FBA1 for ; Thu, 30 Mar 2017 01:27:40 +0000 (UTC) Received: by mail-oi0-f46.google.com with SMTP id b187so16917966oif.0 for ; Wed, 29 Mar 2017 18:27:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=1HAStUrkh9qv3wKdhB8Y/W+t8LEJkdaMzDYTxvTZ+yo=; b=JYEg33drN8NH1tgHEfFW87nTnqSLu9EY/UeRZ8os9OJiiWW8F/9MWKKVoRcz9P5L7j h55pID2+ajcnapMgUvKlSkAqcf2Wvp9zIK2IkcTacpGVUMWz0sQqmgHuxBQxhZlGVC11 Mpqk8JBpVVFE7VoH9o2RQu0vdSXr33aKDIEymb0hDWBT5j+C01aQdVIY7od4WTYQOIGM YVeZVvJLZ+TY5K8+KA8fIHii1zPjBJNjVICi7neg/iz7a8z5gkx08pem+XGJPL9//NjW MOcjupPKJgDwgg3Q9NAfjj779/fsU8gtnG0m05VYkg8uFC92bVGWIOPvSFp6Y+8FOMOH QE9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=1HAStUrkh9qv3wKdhB8Y/W+t8LEJkdaMzDYTxvTZ+yo=; b=WcxOepycKcFiXWJqOqf2Y7lX1937BuCW83IkwoK1GyzAY1zjEBRv1XeCJ/hec6huy1 pcgmaO5B6GajvmHfVDBEUcqKbbcM61M7sCdhXWCG50InV3dd9xqRnDAI9brtKBnIdgjo 67rXFJQMCbxZq1UMbwttzZGXV7lQfiT5PEy4Z2Pvkq8irDpEhTPTPYwnztPSd8iImXPR 89sWtp3qgs3ChYgD0sYYJf8nEzwh4RSLaOREJKJy90ewEuWbaVPqnLhSOc/AdvU8x/+0 jZcxWNcab6WPNPescRl+kdMe2NZoEWeodQSu302Q629ciT/n+1kgPdFlStyC8PvHXsx4 Xagg== X-Gm-Message-State: AFeK/H3wYjZYE1x24O1tKDgUfM+Vce9Bs8t5aEEbXQ1k9ZYR1aScMtJKaJd7ROjUp/Cgj9JxvQeggeMnX54wPg== X-Received: by 10.202.63.131 with SMTP id m125mr1877157oia.112.1490837252535; Wed, 29 Mar 2017 18:27:32 -0700 (PDT) MIME-Version: 1.0 Received: by 10.157.48.91 with HTTP; Wed, 29 Mar 2017 18:27:32 -0700 (PDT) Received: by 10.157.48.91 with HTTP; Wed, 29 Mar 2017 18:27:32 -0700 (PDT) In-Reply-To: References: <1486673296.7141.1.camel@apache.org> <1486721424.7141.3.camel@apache.org> From: Gary Gregory Date: Wed, 29 Mar 2017 18:27:32 -0700 Message-ID: Subject: Re: SocketConfig (v5) To: HttpComponents Project Content-Type: multipart/alternative; boundary=001a113de0c4dafde0054be89828 archived-at: Thu, 30 Mar 2017 01:27:54 -0000 --001a113de0c4dafde0054be89828 Content-Type: text/plain; charset=UTF-8 On Mar 29, 2017 5:31 PM, "sebb" wrote: On 29 March 2017 at 21:50, Gary Gregory 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 wrote: > >> On 15 February 2017 at 19:10, Gary Gregory wrote: >> > On Wed, Feb 15, 2017 at 7:49 AM, sebb wrote: >> > >> >> On 15 February 2017 at 05:20, Gary Gregory >> 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: >> >> >> 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) >> >> >> 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 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 >> >> 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 >> >> > >> >> >> > 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 >> >> >> >> > > > > >> >> >> > > >> >> >> >> > > tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1617290459& >> >> >> >> > > linkCode=as2&tag=garygregory- >> >> >> >> > > 20&linkId=cadb800f39946ec62ea2b1af9fe6a2b8> >> >> >> >> > > > >> >> >> >> > > > > >> >> >> > > > 20&l=am2&o=1&a= >> >> >> >> > > >> >> >> >> > > 1617290459> >> >> >> >> > > > JUnit in Action, Second Edition >> >> >> >> > > > > >> >> >> > > >> >> >> >> > > tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182021& >> >> >> >> > > linkCode=as2&tag=garygregory- >> >> >> >> > > 20&linkId=31ecd1f6b6d1eaf8886ac902a24de418%22 >> >> >> >> > > > >> >> >> >> > > > >> >> >> >> > > > > >> >> >> > > > 20&l=am2&o=1&a= >> >> >> >> > > >> >> >> >> > > 1935182021> >> >> >> >> > > > Spring Batch in Action >> >> >> >> > > > > >> >> >> > > >> >> >> >> > > 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> >> >> >> >> > > > > >> >> >> > > > 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 >> >> >> > > >> >> tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1617290459& >> >> >> linkCode=as2&tag=garygregory-20&linkId= >> cadb800f39946ec62ea2b1af9fe6a2 >> >> b8> >> >> >> > >> >> >> > > >> garygregory-20&l=am2&o=1&a= >> >> >> 1617290459> >> >> >> > JUnit in Action, Second Edition >> >> >> > > >> >> tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182021& >> >> >> linkCode=as2&tag=garygregory-20&linkId= >> 31ecd1f6b6d1eaf8886ac902a24de4 >> >> 18%22 >> >> >> > >> >> >> > >> >> >> > > >> garygregory-20&l=am2&o=1&a= >> >> >> 1935182021> >> >> >> > Spring Batch in Action >> >> >> > > >> >> 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> >> >> >> > > >> 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 >> >> > > >> tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1617290459& >> >> linkCode=as2&tag=garygregory-20&linkId=cadb800f39946ec62ea2b1af9fe6a2 >> b8> >> >> > >> >> > > garygregory-20&l=am2&o=1&a= >> >> 1617290459> >> >> > JUnit in Action, Second Edition >> >> > > >> tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182021& >> >> linkCode=as2&tag=garygregory-20&linkId=31ecd1f6b6d1eaf8886ac902a24de4 >> 18%22 >> >> > >> >> > >> >> > > garygregory-20&l=am2&o=1&a= >> >> 1935182021> >> >> > Spring Batch in Action >> >> > > >> 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> >> >> > > 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 >> > > tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1617290459& >> linkCode=as2&tag=garygregory-20&linkId=cadb800f39946ec62ea2b1af9fe6a2b8> >> > >> > > 1617290459> >> > JUnit in Action, Second Edition >> > > tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182021& >> linkCode=as2&tag=garygregory-20&linkId=31ecd1f6b6d1eaf8886ac902a24de4 18%22 >> > >> > >> > > 1935182021> >> > Spring Batch in Action >> > > 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> >> > > 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 > > > > JUnit in Action, Second Edition > > > > Spring Batch in Action > > > 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 --001a113de0c4dafde0054be89828--