On Mon, Nov 5, 2018 at 12:12 PM Carter Kozak <[email protected]> wrote:
> Big +1 for values with units. > Unless we need to support this on 2.x, should we take advantage of > java 8 java.time.Duration as our value type, and only implement the > parser ourselves? > I think that tracking as a Duration is OK. The only I am not super fond of is that Duration parses only strings in the format PnDTnHnMn.nS so it's a bit of a pain to say "5 SECONDS": "PT5S" is nice for machine generated values but typo-prone for carbon-based units. Gary > On Mon, Nov 5, 2018 at 1:54 PM Gary Gregory <[email protected]> > wrote: > > > > Hi All: > > > > Today in appenders like the JMS Appender you can specify time values like > > the setting reconnectIntervalMillis="5000"; same idea with the mysterious > > Configuration monitorInterval which is specified in seconds (how would > you > > know that without digging in the docs? ;-) > > > > What I'd like to see instead is the ability to say reconnectInterval="5 > > SECONDS" and monitorInterval="2 MINUTES". Note the unscaled attribute > name. > > > > The scale word is a java.util.concurrent.TimeUnit enum name (with, say, > an > > optional "S" at the end). I'm not thinking about localization ATM, just > use > > the TimeUnit enum names. > > > > Over in Apache HttpComponents HttpCore, I created the very handy > TimeValue > > class for this purpose which holds a value and a TimeUnit: > > > https://github.com/apache/httpcomponents-core/blob/master/httpcore5/src/main/java/org/apache/hc/core5/util/TimeValue.java > > > > Then instead of passing around opaque longs and ints around the code, you > > pass arounds TimeValues. > > > > In either 2.x or 3.x, I'd like to copy this class and use it. > > > > Thoughts? > > > > Gary > > > > PS: In HttpCore, TimeValue also has a subclass Timeout. >
