Class ProxySearch
java.lang.Object
com.github.markusbernhardt.proxy.ProxySearch
- All Implemented Interfaces:
ProxySearchStrategy
Main class to setup and initialize the proxy detection system.
This class can be used to select a proxy discovery strategy.
Implements the "Builder" pattern.
Use
If you are done call the
Then the strategies are asked one after the other for a ProxySelector until an valid selector is found.
This class can be used to select a proxy discovery strategy.
Implements the "Builder" pattern.
Use
addStrategy to add one or more search strategies.If you are done call the
getProxySelector method. Then the strategies are asked one after the other for a ProxySelector until an valid selector is found.
Invoke the static getDefaultProxySearch method to use a default search strategy.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumTypes of proxy detection supported by the builder. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final BufferedProxySelector.CacheScopeprivate static final intprivate static final longprivate BufferedProxySelector.CacheScopeprivate intprivate longprivate List<ProxySearchStrategy> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddStrategy(ProxySearch.Strategy strategy) Adds an search strategy to the list of proxy searches strategies.private ProxySearchStrategyGets the search strategy for the platforms default browser.static ProxySearchSets up a ProxySearch that uses a default search strategy suitable for every platform.getName()Gets the printable name of the search strategy.Gets the proxy selector that will use the configured search order.private ProxySelectorIf it is PAC and we have caching enabled set it here.static voidFor testing only.voidsetPacCacheSettings(int size, long ttl, BufferedProxySelector.CacheScope cacheScope) Sets the cache size of the PAC proxy selector cache.toString()toString
-
Field Details
-
DEFAULT_PAC_CACHE_SIZE
private static final int DEFAULT_PAC_CACHE_SIZE- See Also:
-
DEFAULT_PAC_CACHE_TTL
private static final long DEFAULT_PAC_CACHE_TTL- See Also:
-
DEFAULT_PAC_CACHE_SCOPE
-
strategies
-
pacCacheSize
private int pacCacheSize -
pacCacheTTL
private long pacCacheTTL -
pacCacheScope
-
-
Constructor Details
-
ProxySearch
public ProxySearch()Constructor
-
-
Method Details
-
getDefaultProxySearch
Sets up a ProxySearch that uses a default search strategy suitable for every platform.- Returns:
- a ProxySearch initialized with default settings.
-
addStrategy
Adds an search strategy to the list of proxy searches strategies.- Parameters:
strategy- the search strategy to add.
-
setPacCacheSettings
Sets the cache size of the PAC proxy selector cache. This defines the number of URLs that are cached together with the PAC script result. This improves performance because for URLs that are in the cache the script is not executed again. You have to set this before you add any strategies that may create a PAC script proxy selector.- Parameters:
size- of the cache. Set it to 0 to disable caching.ttl- is the time to live of the cache entries as amount of milliseconds.cacheScope- the desired cache scope.
-
getDefaultBrowserStrategy
Gets the search strategy for the platforms default browser.- Returns:
- a ProxySearchStrategy, null if no supported browser was found.
-
getProxySelector
Gets the proxy selector that will use the configured search order.- Specified by:
getProxySelectorin interfaceProxySearchStrategy- Returns:
- a ProxySelector, null if none was found for the current builder configuration.
-
getName
Gets the printable name of the search strategy.- Specified by:
getNamein interfaceProxySearchStrategy- Returns:
- the printable name of the search strategy
-
installBufferingAndFallbackBehaviour
If it is PAC and we have caching enabled set it here.- Parameters:
selector- the proxy selector to wrap- Returns:
- the wrapped proxy selector or the passed in selector if nothing is done.
-
toString
-
main
For testing only. Will print the logging & proxy information to the console.- Parameters:
args- the command line arguments.
-