public class HttpBandwidthUrlSelector extends java.lang.Object implements ISyncUrlExtension, org.jumpmind.extension.IBuiltInExtensionPoint
ISyncUrlExtension is capable of measuring the bandwidth of a
list of urls in order to select the one with the most bandwidth for use.
Use the URI notation of:
ext://httpBandwidthUrlSelector?1=http://url.1.com&2=http://url.2.com¶m=value
Valid parameters are constants on this class that start with PARAM_. Any
parameter that is a numeral will be designated a possible URL.| Modifier and Type | Field and Description |
|---|---|
protected long |
lastSampleTs |
protected org.slf4j.Logger |
log |
static java.lang.String |
PARAM_MAX_SAMPLE_DURATION |
static java.lang.String |
PARAM_PRELOAD_ONLY |
static java.lang.String |
PARAM_SAMPLE_SIZE |
static java.lang.String |
PARAM_SAMPLE_TTL |
| Constructor and Description |
|---|
HttpBandwidthUrlSelector(INodeService nodeService,
IBandwidthService bandwidthService) |
| Modifier and Type | Method and Description |
|---|---|
protected long |
getMaxSampleDuration(java.util.Map<java.lang.String,java.lang.String> params) |
protected java.util.Map<java.lang.String,java.lang.String> |
getParameters(java.net.URI uri) |
protected long |
getSampleSize(java.util.Map<java.lang.String,java.lang.String> params) |
protected long |
getSampleTTL(java.util.Map<java.lang.String,java.lang.String> params) |
protected java.util.List<org.jumpmind.symmetric.transport.http.HttpBandwidthUrlSelector.SyncUrl> |
getUrls(java.util.Map<java.lang.String,java.lang.String> params) |
protected boolean |
isInitialLoadOnly(java.util.Map<java.lang.String,java.lang.String> params) |
java.lang.String |
resolveUrl(java.net.URI uri) |
void |
setDefaultMaxSampleDuration(long defaultMaxSampleDuration) |
void |
setDefaultSampleSize(long sampleSize) |
void |
setDefaultSampleTTL(long sampleTTL) |
protected final org.slf4j.Logger log
public static java.lang.String PARAM_PRELOAD_ONLY
public static java.lang.String PARAM_SAMPLE_SIZE
public static java.lang.String PARAM_SAMPLE_TTL
public static java.lang.String PARAM_MAX_SAMPLE_DURATION
protected long lastSampleTs
public HttpBandwidthUrlSelector(INodeService nodeService, IBandwidthService bandwidthService)
public java.lang.String resolveUrl(java.net.URI uri)
resolveUrl in interface ISyncUrlExtensionprotected long getSampleSize(java.util.Map<java.lang.String,java.lang.String> params)
protected long getMaxSampleDuration(java.util.Map<java.lang.String,java.lang.String> params)
protected long getSampleTTL(java.util.Map<java.lang.String,java.lang.String> params)
protected boolean isInitialLoadOnly(java.util.Map<java.lang.String,java.lang.String> params)
protected java.util.List<org.jumpmind.symmetric.transport.http.HttpBandwidthUrlSelector.SyncUrl> getUrls(java.util.Map<java.lang.String,java.lang.String> params)
protected java.util.Map<java.lang.String,java.lang.String> getParameters(java.net.URI uri)
public void setDefaultSampleSize(long sampleSize)
public void setDefaultSampleTTL(long sampleTTL)
public void setDefaultMaxSampleDuration(long defaultMaxSampleDuration)