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 8D0C2200C55 for ; Thu, 30 Mar 2017 02:31:13 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 8B8FB160B95; Thu, 30 Mar 2017 00:31:13 +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 5F585160B8A for ; Thu, 30 Mar 2017 02:31:12 +0200 (CEST) Received: (qmail 54956 invoked by uid 500); 30 Mar 2017 00:31:11 -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 54944 invoked by uid 99); 30 Mar 2017 00:31:11 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd4-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 30 Mar 2017 00:31:11 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd4-us-west.apache.org (ASF Mail Server at spamd4-us-west.apache.org) with ESMTP id DC28CC002B for ; Thu, 30 Mar 2017 00:31:10 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd4-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -0.347 X-Spam-Level: X-Spam-Status: No, score=-0.347 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_REPLY=1, KAM_ASCII_DIVIDERS=0.8, KAM_LOTSOFHASH=0.25, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-2.796, RCVD_IN_SORBS_SPAM=0.5, SPF_PASS=-0.001] autolearn=disabled Authentication-Results: spamd4-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 (spamd4-us-west.apache.org [10.40.0.11]) (amavisd-new, port 10024) with ESMTP id R-azb-ftSuGT for ; Thu, 30 Mar 2017 00:31:07 +0000 (UTC) Received: from mail-wr0-f174.google.com (mail-wr0-f174.google.com [209.85.128.174]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTPS id 676E85FBA1 for ; Thu, 30 Mar 2017 00:31:07 +0000 (UTC) Received: by mail-wr0-f174.google.com with SMTP id k6so31806317wre.2 for ; Wed, 29 Mar 2017 17:31:07 -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=dlQZQ4SaiqQ81erXv50zThIkdLaZLsi93xmPNiLRUm4=; b=EKCQdUwEI/6NVKAenMef0wyli/5uKswmoe9qH3IHIhsmOAk9XTCp7z1FQT7t/6NfrL qF/N6PUERxYR0icuiIY+8oL6VvhAOwwaH8NlI4vTl0Fv0cITmh9Lp00WyoMnmglfkc5H paGbCBMLGWkMdhmuMSrS+lmnKVCAQ6/XgDct3/EWYgWinVxHlBWba3YI71Gi+/ab7jx+ QLJ0xFFCiK6u4J9db0LeKkBGqWyFB3GU5vOaEq5mK0Ds6XueDUdqCX2RYlLJrJVIEkwh m6FklbweIfKHnMqTmSDUEWezqU/5E1RNv+hn2/JCQuNWrl+ASB9mj22Z+UFBGG6YFMnK n4Ew== 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=dlQZQ4SaiqQ81erXv50zThIkdLaZLsi93xmPNiLRUm4=; b=ZhTQWEe6zGCvQRhZHm+zpMIpxkpAms7Kku+4PBpfR3bgYXdy7HI0kS8I3Wz84G3jwl mdJyQ7pj8vRzh1zsuRR3jiWqgL8tpEI86Zb2uAjZ+TRdIdgPA3JabPBoGZLHZ30QIZYL kx5FKqAYVvZtslbnfCy3fufotL8nQs8zjHuDl9+mrgh57QSZEDUeQPUhc9kgs1wNm0Pl TH9zyyHAaHGHg0u8OeBXJ9vG8y5vFr5Fnn2TNAMPoBisQjuGVnI8LYxqGUY6HEcQh/PW rth15wFkRTeyHZS93NOPCC/7hd3XwZfoc/tYyv59Z8rzWryhv5hTQPLKVscvCYxrJktL qzgQ== X-Gm-Message-State: AFeK/H2EjhXnPTyt/E/YNumHy2e8tsGCXXpS4MEgb/LXVDjcGNNVP9oWF6yS5jile/wQPR4Xyy58wh107MlrYw== X-Received: by 10.223.151.75 with SMTP id r69mr2818553wrb.189.1490833860958; Wed, 29 Mar 2017 17:31:00 -0700 (PDT) MIME-Version: 1.0 Received: by 10.223.169.7 with HTTP; Wed, 29 Mar 2017 17:31:00 -0700 (PDT) In-Reply-To: References: <1486673296.7141.1.camel@apache.org> <1486721424.7141.3.camel@apache.org> From: sebb Date: Thu, 30 Mar 2017 01:31:00 +0100 Message-ID: Subject: Re: SocketConfig (v5) To: HttpComponents Project Content-Type: text/plain; charset=UTF-8 archived-at: Thu, 30 Mar 2017 00:31:13 -0000 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. > 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=31ecd1f6b6d1eaf8886ac902a24de418%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