Package nl.vpro.util
Class URLResource<T>
- java.lang.Object
-
- nl.vpro.util.URLResource<T>
-
- All Implemented Interfaces:
Supplier<T>
,URLResourceMXBean
public class URLResource<T> extends Object implements URLResourceMXBean, Supplier<T>
A simple http client wrapping exactly one external resource, keeping track of cache headers.- Since:
- 0.37
- Author:
- Michiel Meeuwissen
-
-
Field Summary
Fields Modifier and Type Field Description static Function<InputStream,Map<String,String>>
MAP
static Function<InputStream,Properties>
PROPERTIES
-
Constructor Summary
Constructors Constructor Description URLResource(URI url, Function<InputStream,T> reader, Consumer<T>... callbacks)
URLResource(URI url, Function<InputStream,T> reader, T empty, Consumer<T>... callbacks)
-
Method Summary
-
-
-
Field Detail
-
PROPERTIES
public static final Function<InputStream,Properties> PROPERTIES
-
MAP
public static final Function<InputStream,Map<String,String>> MAP
-
-
Constructor Detail
-
URLResource
@SafeVarargs public URLResource(URI url, Function<InputStream,T> reader, T empty, Consumer<T>... callbacks)
-
URLResource
@SafeVarargs public URLResource(URI url, Function<InputStream,T> reader, Consumer<T>... callbacks)
-
-
Method Detail
-
properties
@SafeVarargs public static URLResource<Properties> properties(URI url, Consumer<Properties>... callbacks)
-
map
@SafeVarargs public static URLResource<Map<String,String>> map(URI url, Consumer<Map<String,String>>... callbacks)
-
beansFromProperties
@SafeVarargs public static <S> URLResource<List<S>> beansFromProperties(Function<String,S> constructor, URI url, Consumer<List<S>>... callbacks)
-
get
public T get()
-
callBack
public void callBack()
-
expire
public void expire()
- Specified by:
expire
in interfaceURLResourceMXBean
-
setMaxAge
public URLResource<T> setMaxAge(Duration maxAge)
-
setMinAge
public URLResource<T> setMinAge(Duration minAge)
-
setErrorCache
public URLResource<T> setErrorCache(Duration errorCache)
-
setCallbacks
@SafeVarargs public final URLResource<T> setCallbacks(Consumer<T>... callbacks)
-
setAsync
public URLResource<T> setAsync(boolean async)
-
beansFromProperties
public static <S> Function<InputStream,List<S>> beansFromProperties(Function<String,S> constructor)
-
getLastLoad
public Instant getLastLoad()
-
getLastTry
public Instant getLastTry()
-
getCode
public @MonotonicNonNull Integer getCode()
The HTTP status code on the last invocation ofget()
- Returns:
null
if never called,-1
if no status code could be obtained e.g. because of socket exceptions.
-
getUrl
public URI getUrl()
-
getLastModified
public Instant getLastModified()
-
getExpires
public Instant getExpires()
-
getMaxAge
public Duration getMaxAge()
-
getMinAge
public Duration getMinAge()
-
getErrorCache
public Duration getErrorCache()
-
getOkCount
public long getOkCount()
-
getNotModifiedCount
public long getNotModifiedCount()
-
getNotCheckedCount
public long getNotCheckedCount()
-
getCheckedCount
public long getCheckedCount()
-
getChangesCount
public long getChangesCount()
-
getErrorCount
public long getErrorCount()
-
isAsync
public boolean isAsync()
-
setConnectTimeout
public void setConnectTimeout(Duration connectTimeout)
-
getConnectTimeout
public Duration getConnectTimeout()
-
setReadTimeout
public void setReadTimeout(Duration readTimeout)
-
getReadTimeout
public Duration getReadTimeout()
-
setAccept
public void setAccept(String accept)
-
getAccept
public String getAccept()
-
-